自定义帖子类型的条件CSS

时间:2014-07-14 作者:speedypancake

我正在使用wordpress主题,该主题使用公文包项目的自定义帖子类型和“集合”对它们进行分类。当我将鼠标悬停在要编辑的“集合”上时,它会在浏览器底部显示:taxonomy=portfoliosets,&;标签id=37(&;post\\U类型=投资组合。

我正试图使其标题图像将根据类别或标记而改变。我们有不同的节目,如“视频”和“杂志”等。

到目前为止,我已经尝试将以下内容添加到标题中。php:

<?php  is_single( \'videos\' ) ?>
<style type="text/css">
.page_header {
background: url(\'mysite/image.jpg\') no-repeat scroll center center / cover #F9F9F9 ;
</style>
这似乎改变了一切的形象:

<?php if ( has_tag(\'videos\') && (in_category(\'portfolios\')) ) 
{ echo \'    <style type="text/css">
.page_header {
background: url(\'mysite/image.jpg\') no-repeat scroll center center / cover #F9F9F9 ;
</style>\' ; } else { echo \'\' ; } ; ?>
这似乎给了错误-非常感谢任何帮助-谢谢

2 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

这里有两件事很重要,你的分类法是portfoliosets, 这意味着这不是一个内置类别。videosmagazines 是分类法的术语。根据我对您的问题的理解,您需要根据帖子所属的术语,为不同的单帖子页面视图显示不同的标题图像。

基于此,您可以使用has_term( $term, $taxonomy, $post ) 用于检查帖子是否属于某个术语的条件标记。我只想指出一个小错误,is_single( $post ) 不使用术语作为参数,只使用帖子的ID、名称或slug。

我建议你利用is_singular( $post_types ) 检查您的单个帖子页面。

在所有这些之后,您的查询应该是这样的

if(is_singular( \'portfolios\')){
    if(has_term( \'videos\', \'portfoliosets\' )){
        <---DO SOMETHING FOR TERM video--->
    }elseif(has_term( \'magazine\', \'portfoliosets\' )){
        <---DO SOMETHING FOR TERM magazine--->
    }else{
        <---DO SOMETHING ELSE FOR OTHER POSTS--->
    }
}

SO网友:sabarnix

我认为portfoliosets是自定义分类法,视频和杂志是术语。

所以你的代码应该是

$post_terms = wp_get_post_terms( get_the_ID(), \'portfoliosets\', array( \'fields\' => \'slug\' ) );
if( in_array( \'videos\', $post_terms ) ) {
    echo \'    <style type="text/css">
        .page_header {
        background: url("mysite/image.jpg") no-repeat scroll center center / cover #F9F9F9 ;
    </style>\';
} else {
    echo \'\';
};
退房wp_get_post_terms 对于允许的参数

结束

相关推荐

QUERY_POSTS按多种方式排序

我对query\\u posts orderby multiple ways有问题。我在Wordpress中有一个类别,在那里我需要显示具有排名的第一个帖子,然后按标题显示所有帖子。下面是工作代码,工作正常,但不知道如何连接这些代码。这段代码只显示排名靠前的帖子 query_posts(array(\'cat\' => $category->term_id, \'posts_per_page\' => -1, \'orderby\' => \'meta_value\', \'me