@mack-reid

Как вывести теги со статьями на странице категории Wordpress?

Нужно вывести список тегов, под каждым из них - список статей, в которых есть этот тег. У меня выводятся под всеми тегами все статьи.

function wph_alltags_shortcode($atts, $content) {
    $posttags = get_tags();
    if($posttags) {
        foreach($posttags as $tag) {
            $output.='<div class="category info"><div class="category-name">'.$tag->name.'</div> ';
			$args = array(
                   'post_type' => 'info',
                   'publish' => true,
                   'paged' => get_query_var('paged'),
               );
            $output.='<div class="owl-carousel owl-theme">';
			$image_id = get_post_thumbnail_id();			
			$the_query = new WP_Query( $args );
			while  ($the_query->have_posts() ) : $the_query->the_post();
				$output.='<div class="item"><a href="'.get_permalink().'">'.get_the_post_thumbnail( $image_id,'large' ).'<div class="name">'.get_the_title().'</div></a></div>';
			endwhile;
			$output.='</div>';

			wp_reset_postdata();
			$output.='</div>';
        }
    }
    return $output;
}
add_shortcode('alltags', 'wph_alltags_shortcode');
  • Вопрос задан
  • 105 просмотров
Решения вопроса 1
@mack-reid Автор вопроса
'tag' => $tag->slug,
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
TTATPuOT
@TTATPuOT
https://code.patriotovsky.ru/
В $args добавьте
'tag' => $tag->name
Ответ написан
@deadnice
Нужно в массив args добавить значение с примерно следующий содержанием:
'tax_query' => array(
		array(
			'taxonomy' => 'taxonomyName',
			'field'    => 'id',
			'terms'    => $tag->term_id
		)
	)


Где taxonomyName - зарегистрированное название ваших тегов при регистрации вашего типа записи "info" https://wp-kama.ru/function/register_post_type

Ваш конечный код:
function wph_alltags_shortcode($atts, $content) {
	$posttags = get_tags();
	if($posttags) {
		foreach($posttags as $tag) {
			$output.='<div class="category info"><div class="category-name">'.$tag->name.'</div> ';
			$args = array(
				   'post_type' => 'info',
				   'publish' => true,
				   'paged' => get_query_var('paged'),
				   'tax_query' => array(
						array(
							'taxonomy' => 'taxonomyName',
							'field'    => 'id',
							'terms'    => $tag->term_id
						)
					)
			);
			$output.='<div class="owl-carousel owl-theme">';
			$image_id = get_post_thumbnail_id();			
			$the_query = new WP_Query( $args );
			while  ($the_query->have_posts() ) : $the_query->the_post();
				$output.='<div class="item"><a href="'.get_permalink().'">'.get_the_post_thumbnail( $image_id,'large' ).'<div class="name">'.get_the_title().'</div></a></div>';
			endwhile;
			$output.='</div>';

			wp_reset_postdata();
			$output.='</div>';
		}
	}
	return $output;
}
add_shortcode('alltags', 'wph_alltags_shortcode');
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы