Guedda
@Guedda
Начинающий front-end разработчик

Как правильно вывести related posts (tag__in странно работает)?

Добрый день, уважаемые.
Столкнулся со следующей проблемой. Есть много постов. У каждого поста есть много тегов. Решил я добавить к каждому посту ссылки на "подобные посты". В интернете нашел вариант, и применил его:
$tags = wp_get_post_tags($post->ID);
    if ($tags):
        $first_tag = $tags[0]->term_id;
        $args=array(
            'tag__in' => array($first_tag),
            'post__not_in' => array($post->ID),
            'posts_per_page'=>3,
            'ignore_sticky_posts'=>1
        );
        $my_query = new WP_Query($args);
        if( $my_query->have_posts() ) {
//...

Проверил на одном посте - работает. Показывает 3 поста по первому тэгу. Полез глубже, и увидел, что можно по всем тегам искать, если это:
$first_tag = $tags[0]->term_id;
$args=array(
            'tag__in' => array($first_tag),

заменить на это:
$tag_ids = array();
foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
$args=array(
            'tag__in' => array($tag_ids),

Но проверив на том же самом посте, список подобных постов не показался. Т.е. в первом случае (когда выбирается первый тег и по нём идет поиск) - список показывается, во втором случае - нет (хотя по логике, они должны показываться).
Что я делаю не так? Заранее благодарен за ответы.
  • Вопрос задан
  • 216 просмотров
Решения вопроса 2
maxxannik
@maxxannik
Сайты на WordPress + Интернет магазины WooCommerce
Йето птм что вы массив в массив засунули. ВПКуери такое не курит.
Высуньте массив из массива. И будет счастье.
Ответ написан
Комментировать
deniscopro
@deniscopro Куратор тега WordPress
WordPress-разработчик, denisco.pro
А так?
$tag_ids = array();
foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
$args=array(
            'tag__in' => $tag_ids,
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы