基于2个类别的相关帖子

时间:2017-03-29 作者:Polina Salimova

以免说我有1类2类3

在一个位于类别1的帖子中,我想显示类别2和类别3的帖子列表。如果仅在类别2或类别3中,则不应显示。

我是说有

Multiple Taxonomy Handling:

可以这样做吗?

    \'tax_query\' => array(
   \'relation\' => \'AND\',
    array(
        \'taxonomy\' => \'category 1\',
        \'field\'    => \'slug\',
        \'terms\'    => \'category1\',
    ),
    array(
        \'taxonomy\' => \'category 2\',
        \'field\'    => \'slug\',
        \'terms\'    => \'category2\',
    ),
),
如果是,该代码需要在何处实施?

3 个回复
SO网友:CodeMascot

你可以像下面这样做-

$query = get_posts( 
        array( 
                \'category__and\' => array( 
                    6, // Your category-1 ID
                    7 // Your category-2 ID
                    // And so on and so fourth
                ) 
        ) 
);
现在在$query 变量,您将得到两个Category 1Category 2 等等,等等,第四。

希望这有帮助。

SO网友:Abhishek Pandey

试试这个,希望它能起作用。

global $post;
$args = array( \'posts_per_page\' => 5, \'category\' => array(1,2) );
$myposts = get_posts( $args );
foreach ( $myposts as $post ) : setup_postdata( $post ); ?>
    <li>
        <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    </li>
endforeach; 
wp_reset_postdata();

SO网友:CK MacLeod

不过,要回答这个问题,需要将代码添加到模板文件、函数文件、插件文件或任何其他由参数(args)调用和修改“循环”(基于WP\\u查询)的地方。

我不确定这个问题是否准确地应用了WordPress术语,但从字面上来说,在一篇文章中按类别列出一个帖子列表,一个简单的基本选择是编写一个快捷码函数,它将包含在主题函数中。php

/** 
 *  PRODUCE A LIST OF FIVE POSTS 
 *  EACH WITH BOTH OF TWO SPECIFIED CATEGORIES 
**/
add_shortcode( \'last_five_posts_two_cats\', \'wpse_list_posts_by_two_cats\' );

function wpse_list_posts_by_two_cats() {

    //note "category__and" (like in the_dramatist\'s code) NOT category
    $args = array( 

         \'posts_per_page\' => 5, 
         \'category__and\' => array( 1, 2 ) 

    );

    $output = \'<ul>\' ;

    foreach ( $myposts as $post ) {

        $output .= \'<li>\' ;

        $output .= get_the_title( $post ) ;

        $output .= \'</li>\' ;

    }

    $output .= \'</ul>\';

    return $output ;

}
因此,如果您在[last_five_posts_two_cats] 在你的帖子中,它会列出最后五篇同时属于第1类和第2类的帖子。

(注意:我更新了这个答案,使用“return”而不是“echo”,使用“echo”是我在过去24小时内犯过三次的常见错误,但我希望永远不要再犯这种错误,因为它通常会产生意想不到的结果。)

相关推荐

Custom Taxonomy - fields

我有一个称为项目的自定义分类法,它有一个称为公寓的自定义post类型,两者都有acf自定义字段。我想将分类法创建的项目及其acf字段放在某个页面上,例如项目1、项目2。我创建了taxonomy-projects\\u公寓。php并将其用作模板,用于名为“项目”的页面。$args = array( \'taxonomy\' => \'projects\', \'orderby\' => $orderby, \'show_count