我正在尝试将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);
它的输出和格式正确,但它列出了系统中的每一个分类法,而不是循环中附加到每个帖子的分类法。
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中实现。
编辑:添加了缺少的分号。