输出插件,用作帖子所附加到的每个分类的类名

时间:2017-02-12 作者:Daniel Watts

我正在尝试将slug作为帖子附加到的所有分类法的类名输出,以便使用MixItUp3 使用Multifier Extension 在自定义目录页上。

我有一个自定义的循环设置,它只浏览标记为“当前”的目录帖子(这允许旧的列表保留在系统中,但不显示)。

<?php 

$args = array(
    \'post_type\' => \'directory\',
    \'tax_query\' => array(
    \'relation\' => \'AND\',
        array(
            \'taxonomy\' => \'directory_cat\',
            \'operator\' => \'EXISTS\'
        ),
        array(
            \'taxonomy\' => \'directory_tag\',
            \'field\' => \'slug\',
            \'terms\' => \'current\'
        )
    )
);

$query = new WP_Query( $args ); if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post();

?>

<div class="column mix<?php if ($class_names) { echo \' \' . $class_names;} ?>">
    <a href="<?php the_permalink(); ?>">
        ...
    </a>
</div>
我试图将slug输出到div类中,如上图所示($class\\u name),但我找不到正确的方法。以下代码取自MixItUp文档,我试图根据自己的需要对其进行编辑,但作为一名php初学者,我一直步履蹒跚。

$taxonomies = get_terms();
$slugs = wp_list_pluck($taxonomies, \'slug\');
$class_names = join(\' \', $slugs);
它的输出和格式正确,但它列出了系统中的每一个分类法,而不是循环中附加到每个帖子的分类法。

1 个回复
SO网友:Mario Vega

我建议使用get_the_terms 而不是get\\u术语。它特别提取了附加到给定帖子的条款。如果你在循环中使用它,它只会给你该帖子附带的条款。

看起来像这样:

$query = new WP_Query( $args ); if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post();

$slugs = array();    
$directory_terms = get_the_terms( $post->ID, \'directory_tag\');

foreach ( $directory_terms as $term ) {
    $slugs[] = $term->slug;
}

$class_names = join( \' \', $slugs ); 

?> 

<div class="\' . <?php if ( isset( $class_names) ) { echo \' \' . $class_names;} ?> . \'"> 
如果只需要该分类法中的特定术语,显然可以进一步优化搜索。get\\u the\\u terms返回WP\\u Term对象的列表,您可以以任何合适的方式缩小范围。

编辑:更新代码以显示如何在div中实现。

编辑:添加了缺少的分号。

相关推荐

echo a tax term in loop

对于列表中的每个项目,我需要在之后在此循环中回显CPT的一个术语。感谢您的指导或帮助。原始代码来自Stackoverflow。com,因为它起作用了。 <?php $da_place = get_field(\'smart_place\'); //acf field $args = array( \'post_type\' => \'to_do_items\', \'tax_query\' => array