Как я могу решить эту проблему? Я пытаюсь передать переменную в WP_Query на 'category_name' => $category->slug
, но в выводе не отображаются сообщения.
Когда я удаляю строку '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');
Похоже, вы используете пользовательскую таксономию для своего типа сообщения, и в этом случае код должен быть примерно таким:
$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 здесь.