获取2个不同类别的帖子

时间:2013-06-25 作者:pulla

我有一个自定义帖子(称为“ait目录项目”)和两个类别。在分类档案页面,我需要得到属于2个类别的帖子
从两个类别获取帖子

补充条款
“ait dir项目类别”(食品id为6)上的类别1=“食品”和“ait dir项目类别”(食品id为39)上的类别2=“食品”和后类型=“ait dir项目”

我一直在尝试三种方法来解决这个问题。没有一个工作正常。请告诉我如何修理它。

第1种方式

`查询帖子(“cat=6,39&showposts=5&post\\u type=ait dir item”)
/*query\\u posts(数组(post\\u type=>\'ait-dir-item\',category\\u and\'=>数组(6,39),\'posts\\u per\\u page\'=>12,\'orderby\'=>\'title\',\'order\'=>\'DESC\')*/

while(have\\u posts()):the\\u post();

echo$title=获取\\u标题();echo$content=获取\\u内容();结束时`

当我输入“cat=6,39”或“category\\uu and”=>array(6,39)”时,未找到任何结果。

第二条路

全球美元邮政;

    $tmp_post = $post;

    $args = array(
        \'posts_per_page\'  => 5,
        \'post_type\' => \'ait-dir-item\',
        \'category__and\' => array(6, 39) // where 1, 2 is cat id
        /*\'tax_query\' => array(
            array(
                \'taxonomy\' => \'ait-dir-item-special\',
                \'field\' => \'id\',
                \'terms\' => 39 // taxonomy id
            )
        )*/
    );
    $myposts = get_posts( $args );
    foreach( $myposts as $post ) : 

    $feat_image = wp_get_attachment_url( get_post_thumbnail_id($post->ID) );
    $thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), \'thumbnail_size\' );
    $url = $thumb[\'0\'];
    ?>

        <li class="display_special_items"><img src="<? echo $url; ?>"/><a>"><?php the_title(); ?></a>
    <?php endforeach; ?>
    <?php $post = $tmp_post; ?>
    <li class="clear">
`

第三种方式:关系和

“$custom\\u terms=get\\u terms(\'ait-dir-item-special\')$other\\u custom\\u terms=get\\u terms(\'ait-dir-item-category\');

foreach ($custom_terms as $custom_term) {
foreach ($other_custom_terms as $other_custom_term) {
        wp_reset_query();
        $args = array(\'post_type\' => \'ait-dir-item\',
            \'tax_query\' => array(
              \'relation\' => \'AND\',
                array(
                \'taxonomy\' => \'ait-dir-item-category\',
                \'field\' => \'id\',
                \'terms\' => 6
                ),
                    array(
                    \'taxonomy\' => \'ait-dir-item-special\',
                    \'field\' => \'id\',
                    \'terms\' => 39
                    ),
                ),
                 );

         $loop = new WP_Query($args);
         if($loop->have_posts()) {
            echo \'<h1 style="margin-top:10px;">\'.$custom_term->name.\'</h1>\';

            while($loop->have_posts()) : $loop->the_post();
                echo \'<h2><a href="\'.get_permalink().\'">\'.get_the_title().\'</a></h2>\';
            endwhile;
         }
    }
    }
`

我想我对这些代码没有什么问题。它显示但重复的所有项目帖子。我应该如何修复它?

谢谢

1 个回复
最合适的回答,由SO网友:Andrew 整理而成

前两个方法不起作用,因为“cat=”和“category\\uu and”查询变量仅适用于标准的post类型(内置)类别分类条件。

第三个方法嵌套在多个foreach循环中,这可能是重复的原因。我认为,如果您删除这两个foreach循环,让查询独立运行,它就会像您所希望的那样工作。目前,您正在对两种分类法中的每个术语重复查询。

不要使用foreach,只需通过替换以下内容来获取当前术语:

echo \'<h1 style="margin-top:10px;">\'.$custom_term->name.\'</h1>\';
用这样的方式:

$term1 = get_term_by(\'id\', 6, \'ait-dir-item-special\');
$term2 = get_term_by(\'id\', 39, \'ait-dir-item-category\');
echo \'<h1 style="margin-top:10px;">\'.$term1->name.\' and \'.$term2->name.\'</h1>\';

结束

相关推荐

WP_LIST_CATEGORIES,将类添加到具有子项的所有列表项

我正在使用wp_list_categories(); 要显示自定义分类法中所有术语的列表,但我需要为具有子级的列表项设置与不具有子级的列表项不同的样式。有没有一种方法,PHP或jQuery,我可以给所有父元素一个特殊的类?