WP.invent.php中add_body_class的问题 - 未添加类

时间:2015-12-02 05:41:42

标签: wordpress

我正在使用JointsWP主题,并且我试图让我的自定义帖子类型存档有一个额外的类,但它不起作用。

我在archive_yacht_for_sale.php上获得的唯一正文类是:

  • 博客
  • 登录
  • 2008-jeanneau-54ds(第一篇文章的标题 页面)
  • hyg-blog-index(我的一个自定义身体类别。这应该是通过hyg-yacht-index)。

除了post_type_archive之外,我的所有自定义正文类都正常工作。我已经在my_body_classes函数中尝试过了,它也没有用。我也用

结束了循环
<?php endif; 
wp_reset_query();
?>

无济于事。

由于博客具有相同的正文类,因此几乎无法在css中定位自定义帖子类型存档。

以下是我的functions.php中的相关代码。

function add_body_class( $hygclasses ) {
global $post;
if ( isset( $post ) ) {
    $hygclasses[] = $post->post_name;
} 
return $hygclasses;
}
add_filter( 'body_class', 'add_body_class' );


function my_body_classes( $classes ) {
if (is_page(array(13,41,44))) {     
    $classes[] = 'parent-pageid-23';     
} elseif (is_home()) {
    $classes[] = 'hyg-blog-index'; 
 } elseif (is_singular('post')) {
    $classes[] = 'hyg-blog-single';  
}
return $classes;   
}
add_filter( 'body_class','my_body_classes' );

function more_body_classes( $classes ) {
if (is_post_type_archive()){
     $classes[] = 'hyg-yacht-index'; 
}
return $classes;   
}
add_filter( 'body_class','more_body_classes' );`

当我尝试添加

时,问题肯定是post_type_archive
<body <?php body_class(); ?> <?php if (is_post_type_archive()){ ?> id="hyg-yacht-index" <?php } ?>>

无济于事(再次)。

没有插件控制帖子类型或分类。

我最初是在三周前在Wordpress.org上发布的。

1 个答案:

答案 0 :(得分:0)

要检查存档页面是否为自定义帖子类型存档页面,您应该使用

is_post_type_archive('your_post_name')

所以,替换

is_post_type_archive()

is_post_type_archive('your_post_name')

您的功能将是:

function my_body_classes( $classes )
{
    if (is_page(array(13,41,44)))
    {
        $classes[] = 'parent-pageid-23';
    } 
    elseif (is_home()) 
    {
        $classes[] = 'hyg-blog-index';
    } 
    elseif (is_singular('post')) 
    {
        $classes[] = 'hyg-blog-single';
    }
    elseif (is_post_type_archive('your_post_type')) 
    {
        $classes[] = 'hyg-yacht-index';
    }

    return $classes;
}
add_filter( 'body_class','my_body_classes' );

希望这会有所帮助: - )