根据管理员设置的自定义字段值分类查询帖子

时间:2016-10-25 作者:Dan Bruce

在我的自定义帖子类型中,我希望允许“管理员”从另一个自定义帖子类型分类中提取相关帖子。管理员应该能够将分类法放在自定义字段中,这将从他们选择的分类法中查询帖子。

自定义字段是“featured\\u product\\u tag”-在该字段中,将从“products”帖子类型中提取分类法。为什么这样不行?提前感谢您的帮助。

 $foo = get_post_meta( $post->ID, \'featured_product_tag\', true );
与正确的分类法相呼应,但它并不是从这个分类法中提取的。

<?php 
$foo = get_post_meta( $post->ID, \'featured_product_tag\', true );
$args = array(
    \'post_type\'=> \'products\',
    \'taxonomy\' => $foo,
    \'order\'    => \'rand\',
    \'showposts\' => \'4\'
    );              
$the_query = new WP_Query( $args );
if($the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); 
?>
<?php
$thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), \'thumbnail\' );
$url = $thumb[\'0\'];
?>
<a href="<?php echo get_permalink( $post->ID ); ?>">
<div class="related-featured">
<img src="<?=$url?>" style="max-height: 180px;" alt="<?php the_title(); ?>" title="<?php the_title(); ?>" />
<span class="small-text-p"><i>from</i> <?php  echo  get_post_meta(get_the_id(), \'price_low\', \'true\'); ?></small>
</div></a>
<?php endwhile; else: ?>
<?php endif; wp_reset_postdata(); ?>
<?php endif; ?>

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

无法基于运行查询taxonomy 只有您还需要提供与自定义post类型post关联的分类术语。更改您的$args 如下所示-

$args = array(
    \'post_type\'=> \'products\',
    \'tax_query\' => array(
        array(
            \'taxonomy\' => \'cosmetics\', // your taxonomy
            \'field\' => \'term_id\',
            \'terms\' => get_term_by(\'name\', $foo, \'cosmetics\')->term_id, // your taxonomy term id or array of id\'s
        )
    ),
    \'order\'    => \'rand\',
    \'showposts\' => \'4\'
);
有关的更多信息WP_Query() 请提供参数read this.