显示所有帖子标题以及类别和标签

时间:2014-12-01 作者:Brandon Orndorff

我正在尝试显示属于特定类别且具有特定标签的所有帖子。这是我迄今为止所拥有的,但它似乎忽略了&;然后让它或。

<?php
$myposts = get_posts( "cat=the_field(\'troubleshooting_category\')&tag_id=5" );
foreach ( $myposts as $post ) : setup_postdata( $post ); ?>
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; 
wp_reset_postdata();?>
第一行

$myposts = get_posts( "cat=the_field(\'troubleshooting_category\')&tag_id=5" ); 
正确转换为

$myposts = get_posts( "cat=4&tag_id=5" ); 
但不是显示类别id为4、标签id为5的所有帖子,而是显示所有具有其中一个的帖子(我需要它只显示同时具有这两个属性的帖子)

2 个回复
SO网友:Pieter Goosen

正如评论中所建议的,这里最好的方法是使用tax_query. 特别是在使用多个分类法时(在本例中),您有更大的灵活性和运行更复杂查询的能力categorypost_tag).

你可以试试这样的

$args = [
    \'tax_query\' => [
        \'relation\' => \'AND\',
        [
            \'taxonomy\'         => \'category\',
            \'field\'            => \'term_id\',
            \'terms\'            => the_field(\'troubleshooting_category\'),
            \'exclude_children\' => true
        ],
        [
            \'taxonomy\'         => \'post_tag\',
            \'field\'            => \'term_id\',
            \'terms\'            => 5,
        ],
    ],
];
$q = get_posts( $args );

SO网友:Brandon Orndorff

感谢您提供Tax\\u查询建议。我已经完成了以下工作,效果非常好。

    $myquery[\'tax_query\'] = array(
    array(
        \'taxonomy\' => \'category\',
        \'terms\' => array(\'category-slug\'),
        \'field\' => \'slug\',
    ),
    array(
        \'taxonomy\' => \'post_tag\',
        \'terms\' => array(\'tag-slug\'),
        \'field\' => \'slug\',
    ),
);
query_posts($myquery);

结束

相关推荐