显示来自多个数组的自定义 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" 传递结果数组,因此您可以在逗号周围使用(或不使用)空格来指定您的术语。
我想通过短代码显示多个类别中的所有 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" 传递结果数组,因此您可以在逗号周围使用(或不使用)空格来指定您的术语。