根据当前分类获取帖子

时间:2017-01-09 作者:Cha

谢谢你的帮助。

我在一个自定义的帖子(不是档案)中发布分类法。我想展示:

其他一些自定义帖子,按照当前的分类法,似乎并不难,但对我来说确实如此。。。我没有找到在查询中使用我的税款术语的正确方法。。。

以下是我的一个尝试:

$terms = wp_get_post_terms( $post->ID, \'identite\'); // to get my taxonomy

foreach ( $terms as $term ) {
echo "$term->slug"; // just for test - ok

   $args = array(
    \'post_type\' => \'example\',
    \'tax_query\' => array(
        \'relation\' => \'AND\',
        array(
            \'taxonomy\' => \'identite\',
            \'field\'    => \'ID\',
            \'terms\'    => $terms
             )
        ),
     );// end args

$query = new WP_Query( $args);

if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
         $query->the_post();

       // Little pray, but doesn\'t work

    }//end of while

}
我获得了此错误消息:类WP\\u Term的对象无法在中转换为int

有没有想法转换我的对象并使其可读?非常感谢

(编辑:我尝试使用wp\\u list\\u pulk功能,但没有成功)

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

试试这个WP_Query

$args = array(
\'post_type\' => \'example\',
\'tax_query\' => array(
    \'relation\' => \'AND\',
    array(
        \'taxonomy\' => \'identite\',
        \'field\'    => \'ID\',
        \'terms\'    => $term->term_id
         )
    ),
 );// end args

$args = array(
\'post_type\' => \'example\',
\'tax_query\' => array(
    \'relation\' => \'AND\',
    array(
        \'taxonomy\' => \'identite\',
        \'field\'    => \'ID\',
        \'terms\'    => array($term->term_id)
         )
    ),
 );// end args
$term 是一个对象,并且tax_query 需要一个id数组。

请参见:https://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters

SO网友:Marc-Antoine Parent

由于您设置$args 大堆在tax_query, 您需要为当前帖子传递一个包含所有术语ID的数组。此外field 值不正确(如此处的法典所示:WP_Query#Taxonomy_Parameters).

最终代码应类似于:

<?php 

$terms = wp_get_post_terms( $post->ID, \'identite\'); 
$terms_ids = [];

foreach ( $terms as $term ) {
    $terms_ids[] = $term->term_id;
}

$args = array(
    \'post_type\' => \'example\',
    \'tax_query\' => array(
        \'relation\' => \'AND\',
        array(
            \'taxonomy\' => \'identite\',
            \'field\'    => \'term_id\',
            \'terms\'    => $terms_ids
        )
    ),
);

$query = new WP_Query($args);

if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();

        // All the magic here
    }
}

相关推荐

使用WP_QUERY混合发布日期和发布元值

正在寻找使用自定义字段将旧帖子推送到WP\\u查询中的方法。例如,我今年有10篇文章,想将过去的2篇文章重新发布到自定义rss提要。因此,对于旧帖子,必须按照帖子日期和帖子元中的值对帖子进行排序:new post - (post date: 2018-11-11) new post - (post date: 2018-11-10) old post - (post date: 2017-05-01, post-meta date: 2018-11-09) new post - (