我怎样才能给CPT档案正确的Body类?

时间:2015-01-07 作者:turtledropbomb

我创建了多个自定义帖子类型,并使用自定义slug将归档设置为true。然而,所有这些档案都有bloghome 并且没有与职位类型相关的类别。

我正在使用<body <?php body_class(); ?>> 在头文件中,get在每个页面上都被调用,但不知何故它无法将这些页面识别为cpt存档。

这是预期的功能,还是我更有可能在编码模板/帖子类型时出错?

Archive example

我的帖子类型代码(所有CPT编码方式相同,略有变化):

function publikasjoner() { 
    register_post_type( \'publikasjoner\',
        array( \'labels\' => array(
            \'name\' => __( \'Publikasjoner\', \'bonestheme\' ),
            \'singular_name\' => __( \'Publikasjon\', \'bonestheme\' ),
            \'all_items\' => __( \'Alle publikasjoner\', \'bonestheme\' ),
            \'add_new\' => __( \'Ny publikasjon\', \'bonestheme\' ),
            \'add_new_item\' => __( \'Legg til ny publikasjon\', \'bonestheme\' ),
            \'edit\' => __( \'Rediger\', \'bonestheme\' ),
            \'edit_item\' => __( \'Rediger publikasjoner\', \'bonestheme\' ),
            \'new_item\' => __( \'Ny publikasjon\', \'bonestheme\' ),
            \'view_item\' => __( \'Vis publikasjon\', \'bonestheme\' ),
            \'search_items\' => __( \'Søk etter publikasjon\', \'bonestheme\' ),
            \'not_found\' =>  __( \'Fant ingenting i databasen.\', \'bonestheme\' ),
            \'not_found_in_trash\' => __( \'Fant ingenting i søppelkassen\', \'bonestheme\' ),
            \'parent_item_colon\' => \'\'
            ),
            \'description\' => __( \'Østlandsforsknings publikasjoner legges til her\', \'bonestheme\' ),
            \'public\' => true,
            \'publicly_queryable\' => true,
            \'exclude_from_search\' => false,
            \'show_ui\' => true,
            \'query_var\' => true,
            \'menu_position\' => 9,
            \'menu_icon\' => \'dashicons-edit\',
            \'rewrite\'   => array( \'slug\' => \'publikasjoner\', \'with_front\' => false ),
            \'has_archive\' => \'publikasjoner\',
            \'capability_type\' => \'post\',
            \'hierarchical\' => true,
            \'supports\' => array( \'title\', \'editor\', \'author\', \'thumbnail\', \'excerpt\', \'custom-fields\', \'revisions\')
        )
    );

    register_taxonomy_for_object_type( \'emne\', \'publikasjoner\' );
    register_taxonomy_for_object_type( \'emneord\', \'publikasjoner\' );
    register_taxonomy_for_object_type( \'emne\', \'type_publikasjon\' );

}

3 个回复
SO网友:Abhik

有一个过滤器叫做body_class 为此。

function my_own_body_classes($classes) {

    // Add Classes to body if the post type archive is \'publikasjoner\'
    if ( is_post_type_archive( \'publikasjoner\' ) ) {
        $classes[] = \'publikasjoner-archive\';
    }
    // Go for other posts types here


    return $classes;
}
add_filter(\'body_class\', \'my_own_body_classes\');

SO网友:setterGetter

你说:

我在标题的body标记中有body\\u class()过滤器。php文件,每个页面上都会调用该文件。

事实上

你应该看到更多的课程。

这有一个典型错误的症状(我已经犯了很多次),请确保body\\u类上的过滤器返回它应该返回的内容,例如,这是错误的:

add_filter(\'body_class\', function($classes){
    global $post;
    if ( \'foobar\' === $post->post_type ) {
        $classes[] = \'barfoo\';
        return $classes;
    }
});
以及未能返回类,这可能会破坏进程,因此应该这样做:

add_filter(\'body_class\', function($classes){
    global $post;
    if ( \'foobar\' === $post->post_type ) {
        $classes[] = \'barfoo\';
    }
    return $classes;
});
如果不返回过滤器(在我的第一个(错误的)示例中就是这样),它将清空该值。

不知道这是否有用,但我过去曾意外地这样做过。

SO网友:D. Dan

您可以将任何类或类数组传递给body类函数。因此,如果要确定这确实是“publikasjoner”的页面,那么可以将该类添加到body类中,如下所示:

body_class(\'publikasjoner\');
您可以使用以下命令检查您是否在帖子类型的存档页面上is_post_type_archive().

因此,您可以:

$cpt_class = "not-a-cpt";
if(is_post_type_archive(\'publikasjoner\')){
     $cpt_class = \'publikasjoner\';
}
?><html stuff><?php
body_class($cpt_class);

结束

相关推荐

我怎样才能给CPT档案正确的Body类? - 小码农CODE - 行之有效找到问题解决它

我怎样才能给CPT档案正确的Body类?

时间:2015-01-07 作者:turtledropbomb

我创建了多个自定义帖子类型,并使用自定义slug将归档设置为true。然而,所有这些档案都有bloghome 并且没有与职位类型相关的类别。

我正在使用<body <?php body_class(); ?>> 在头文件中,get在每个页面上都被调用,但不知何故它无法将这些页面识别为cpt存档。

这是预期的功能,还是我更有可能在编码模板/帖子类型时出错?

Archive example

我的帖子类型代码(所有CPT编码方式相同,略有变化):

function publikasjoner() { 
    register_post_type( \'publikasjoner\',
        array( \'labels\' => array(
            \'name\' => __( \'Publikasjoner\', \'bonestheme\' ),
            \'singular_name\' => __( \'Publikasjon\', \'bonestheme\' ),
            \'all_items\' => __( \'Alle publikasjoner\', \'bonestheme\' ),
            \'add_new\' => __( \'Ny publikasjon\', \'bonestheme\' ),
            \'add_new_item\' => __( \'Legg til ny publikasjon\', \'bonestheme\' ),
            \'edit\' => __( \'Rediger\', \'bonestheme\' ),
            \'edit_item\' => __( \'Rediger publikasjoner\', \'bonestheme\' ),
            \'new_item\' => __( \'Ny publikasjon\', \'bonestheme\' ),
            \'view_item\' => __( \'Vis publikasjon\', \'bonestheme\' ),
            \'search_items\' => __( \'Søk etter publikasjon\', \'bonestheme\' ),
            \'not_found\' =>  __( \'Fant ingenting i databasen.\', \'bonestheme\' ),
            \'not_found_in_trash\' => __( \'Fant ingenting i søppelkassen\', \'bonestheme\' ),
            \'parent_item_colon\' => \'\'
            ),
            \'description\' => __( \'Østlandsforsknings publikasjoner legges til her\', \'bonestheme\' ),
            \'public\' => true,
            \'publicly_queryable\' => true,
            \'exclude_from_search\' => false,
            \'show_ui\' => true,
            \'query_var\' => true,
            \'menu_position\' => 9,
            \'menu_icon\' => \'dashicons-edit\',
            \'rewrite\'   => array( \'slug\' => \'publikasjoner\', \'with_front\' => false ),
            \'has_archive\' => \'publikasjoner\',
            \'capability_type\' => \'post\',
            \'hierarchical\' => true,
            \'supports\' => array( \'title\', \'editor\', \'author\', \'thumbnail\', \'excerpt\', \'custom-fields\', \'revisions\')
        )
    );

    register_taxonomy_for_object_type( \'emne\', \'publikasjoner\' );
    register_taxonomy_for_object_type( \'emneord\', \'publikasjoner\' );
    register_taxonomy_for_object_type( \'emne\', \'type_publikasjon\' );

}

3 个回复
SO网友:Abhik

有一个过滤器叫做body_class 为此。

function my_own_body_classes($classes) {

    // Add Classes to body if the post type archive is \'publikasjoner\'
    if ( is_post_type_archive( \'publikasjoner\' ) ) {
        $classes[] = \'publikasjoner-archive\';
    }
    // Go for other posts types here


    return $classes;
}
add_filter(\'body_class\', \'my_own_body_classes\');

SO网友:setterGetter

你说:

我在标题的body标记中有body\\u class()过滤器。php文件,每个页面上都会调用该文件。

事实上

你应该看到更多的课程。

这有一个典型错误的症状(我已经犯了很多次),请确保body\\u类上的过滤器返回它应该返回的内容,例如,这是错误的:

add_filter(\'body_class\', function($classes){
    global $post;
    if ( \'foobar\' === $post->post_type ) {
        $classes[] = \'barfoo\';
        return $classes;
    }
});
以及未能返回类,这可能会破坏进程,因此应该这样做:

add_filter(\'body_class\', function($classes){
    global $post;
    if ( \'foobar\' === $post->post_type ) {
        $classes[] = \'barfoo\';
    }
    return $classes;
});
如果不返回过滤器(在我的第一个(错误的)示例中就是这样),它将清空该值。

不知道这是否有用,但我过去曾意外地这样做过。

SO网友:D. Dan

您可以将任何类或类数组传递给body类函数。因此,如果要确定这确实是“publikasjoner”的页面,那么可以将该类添加到body类中,如下所示:

body_class(\'publikasjoner\');
您可以使用以下命令检查您是否在帖子类型的存档页面上is_post_type_archive().

因此,您可以:

$cpt_class = "not-a-cpt";
if(is_post_type_archive(\'publikasjoner\')){
     $cpt_class = \'publikasjoner\';
}
?><html stuff><?php
body_class($cpt_class);

相关推荐