derzost_namereniya
@derzost_namereniya
Люблю тестировать компьютеры, Интернет-магазины.

Как проверить пост на наличие тегов в WordPress?

Подскажите, как проверить текущий пост на наличие тегов и, если они есть, с такими же (!) тегами вывести похожие посты. Сейчас у меня выводятся посты или входящие в конкретную категорию или с точно заданным тегом, пример:
<?php
    $arg = array (
        'tag__in' => 166, // выводить посты, имеющие такой тег
        'posts_per_page' => 3, // сколько постов выводить
        'orderby' => rand // рандомно
    );
?>
  • Вопрос задан
  • 34 просмотра
Решения вопроса 1
// проверяем наличие тегов
	if ( has_tag() ) {
		$tags = wp_get_post_tags( get_the_ID() );

		$tags_array = array();
		foreach ( $tags as $key => $tag ) {
			$tags_array[] = $tag->term_id; // собираем в массив
		}

		$args = array (
			'post_type' => 'post',
			'tag__in' => $tags_array, // получаем посты, имеющие такой же тег
			'post__not_in' => array( get_the_ID() ), // исключаем текущий пост
			'posts_per_page' => 3,
			'orderby' => rand
		);
	} else {
		// или получаем любые последние посты
		$args = array (
			'post_type' => 'post',
			'posts_per_page' => 3,
			'orderby' => date
		);
	}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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