我想通过短代码显示来自多个类别的所有帖子。如果我在短代码属性中使用一个类别,它就可以工作。
<?php echo do_shortcode( '[people cat_name="lab-members"]'); ?>
但是,当我在短代码属性中使用两个或三个类别时,它无法正常工作。
<?php echo do_shortcode( '[people cat_name="lab-members, advisors"]'); ?>
以下是我正在尝试的内容
function mmddl_people_shortcode($atts)
{
// define attributes and their defaults
extract(shortcode_atts(array (
'cat_name' => ''
), $atts));
$args = array (
'post_type' => 'people',
'tax_query' => array (
array (
'taxonomy' => 'people_category',
'field' => 'slug',
'terms' => $cat_name
),
),
);
// get the arguments
$loop = new WP_Query($args);
// the loop
while ($loop->have_posts()) : $loop->the_post(); ?>
<!-- team member -->
<div id="people-<?php the_ID() ?>" <?php post_class('col-sm-6 col-md-3 wow fadeInUp'); ?> >
<div class="team-mate">
<h4><?php the_title(); ?></h4>
<figure class="member-photo">
<!-- member photo -->
<?php
if (has_post_thumbnail()) {
the_post_thumbnail('full', array ('class' => 'img-responsive'));
} else {
echo '<img src="http://placehold.it/450x450" alt="' . get_the_title() . '" class="img-responsive">';
}
?>
</figure>
</div>
</div>
<!-- // team member -->
<?php endwhile;
}
add_shortcode('people', 'mmddl_people_shortcode');
答案 0 :(得分:1)
要在税务查询中传递多个术语,您需要指定一个数组。查看the docs。
,例如,在您的情况下:
$terms = array_map('trim', explode(',', $cat_name))
这就是你作为terms
的参数传递的内容。
我正在通过“trim”传递结果数组,因此您可以使用逗号周围的空格(或不使用空格)指定您的术语。