显示来自自定义分类查询的结果

时间:2013-12-11 作者:Danny Connolly

我已经创建了一个自定义分类区域,我想查询该分类中的所有结果并显示它们。我的问题是:

$args = array(
\'tax_query\' => array(
    array(
        \'taxonomy\' => \'region\',
        \'field\' => \'slug\',
        \'terms\' => array( \'north\', \'east\', \'west\', \'south\' )
    )
)
);
$query = new WP_Query( $args );
然后如何将此结果显示为html?大致如下:

<li class="location large-3 columns">
   <img src="<?php echo get_template_directory_uri(); ?>/images/region1.jpg" alt="" />
   <span class="location-title">TAXONOMY TITLE HERE</span>
</li>

2 个回复
最合适的回答,由SO网友:Shazzad 整理而成
$regions = get_terms(\'region\', array(\'hide_empty\' => false) );
foreach( $regions as $region ){ ?>
<li class="location large-3 columns">
   <img src="<?php echo get_template_directory_uri(); ?>/images/<?php echo $region->slug; ?>.jpg" alt="" />
   <span class="location-title"><?php echo $region->name; ?></span>
</li><?php
}
SO网友:Michael Ecklund

有很多方法可以满足你的需要。

我可能会这样做:

if($query->posts){
    foreach($query->posts as $post){
        echo \'<li class="location large-3 columns">\'.PHP_EOL;
        echo \'<img src="\'.get_template_directory_uri().\'/images/region1.jpg" alt="" />\'.PHP_EOL;
        $terms = get_the_term_list($post->ID, \'region\', \'<span class="location-title">\', \', \', \'</span>\');
        if($terms){
            echo $terms.PHP_EOL;
        }
        echo \'</li>\'.PHP_EOL;
    }
}
我只是喜欢检索数据,并手动循环/输出内容。

否则,您可以使其更“WordPress友好”,并设置post数据。看看this example 如果你决定这样做的话,就在WordPress Codex上。你会注意到这与我的方法非常相似。无论哪种方式,你都可以实现同样的目标。这只是一种偏好。

结束