如何解决此问题?我正在尝试在'category_name' => $category->slug
的WP_Query中传递一个变量,但未在输出中显示任何帖子。
当我从代码中删除'category_name' => $category->slug,
行时,然后显示帖子,但需要按类别显示帖子。
<?php
function mytheme_schedule_shortcode($atts, $content = null){
extract( shortcode_atts( array(
'style' => 1
), $atts) );
$domain = 'mytheme-toolkit';
$mytheme_schedule_categories = get_terms('schedule_cat');
$mytheme_schedule_markup ='
<section class="schedule-area bg-image ptb-120">
<div class="container">
<div class="row">
<div class="col-lg-12">
<div class="tab">
<ul class="tabs">';
if (!empty($mytheme_schedule_categories) && ! is_wp_error($mytheme_schedule_categories)) {
foreach($mytheme_schedule_categories as $category){
$mytheme_schedule_markup .='
<li>
<a href="#">'.esc_html__($category->name).'
<span>'.esc_html__($category->slug).'</span>
</a>
</li>';
}
}
$mytheme_schedule_markup .='
</ul>
<div class="tab_content">';
foreach($mytheme_schedule_categories as $category){
$mytheme_schedule_markup .='
<div class="tabs_item">
<ul class="accordion">';
$args = array(
'post_type' => 'schedule',
'posts_per_page' => -1,
'category_name' => $category->slug,
);
$schedule_array = new WP_Query( $args );
while($schedule_array->have_posts()): $schedule_array->the_post();
$mytheme_schedule_markup .= '
<li class=-item">
<h3>'.get_the_title().'</h3>
</li>';
endwhile;
wp_reset_query();
$mytheme_schedule_markup .= '
</ul>
</div>';
}
$mytheme_schedule_markup .='
</div>
</div>
</div>
</div>
</div>
</section>';
return $mytheme_schedule_markup;
}
add_shortcode('mytheme_schedule', 'mytheme_schedule_shortcode');
答案 0 :(得分:0)
您似乎在对帖子类型使用自定义分类法,在这种情况下,代码应类似于以下内容:
$args = array(
'post_type' => 'schedule',
'posts_per_page' => -1,
'tax_query' => array(
array(
'taxonomy' => 'schedule_cat',
'field' => 'slug',
'terms' => $category->slug,
),
),
);
$schedule_array = new WP_Query( $args );
这应该可以为您解决问题。祝你好运!
为将来参考,请检查WP查询参数here