显示来自多个数组的自定义 post

show custom post from multiple array

我想通过短代码显示多个类别中的所有 post。如果我在短代码属性中使用一个类别,它会起作用。

<?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');

要在税务查询中传递多个术语,您需要指定一个数组。查看 the docs

例如,在您的情况下:

$terms = array_map('trim', explode(',', $cat_name))

这就是您作为参数传递给 terms 的内容。

我通过 "trim" 传递结果数组,因此您可以在逗号周围使用(或不使用)空格来指定您的术语。