@vvvadimos

Почему не работает post__not_in?

Есть посты, есть страницы. и тем и тем задаю теги (чтоб задавать теги страницам, поставил плагин Simple Tags).
Нужно вывести ТОЛЬКО посты с определенным тегом, исключая текущий пост (исключая, потому что вывод в самом посте). вот пример кода (здесь айди тега и поста вставлены явно, просто чтоб не искать ошибки в получении этих айди):
$related_args = array(
        'category_name' => 'blog',
        'tag__in' => array(137),
        'numberposts' => 10,
        'post__not_in' => array(19222)
    );

   $related_posts = get_posts($related_args);

    var_dump($related_posts);

    wp_reset_postdata();


в аргументы передается id тега, по которому искать релевантные посты, и id текущего поста, чтоб исключить его из выдачи. этот код выводит посты, но не исключая текущего. убираю category_name, пост исключается, но к выдаче добавляется тип "page". задать 'post_type' => 'post' не помогает.
  • Вопрос задан
  • 41 просмотр
Решения вопроса 1
@vvvadimos Автор вопроса
function category_filter($query) {
    if ($query->is_category) {
        $e_post_id = get_id_by_slug('write-for-us');
        $excludeId = array($e_post_id);
        $query->set('post__not_in', $excludeId);
        $query->set('post_type', array('page', 'post'));
    }
    return $query;
}

add_filter('pre_get_posts', 'category_filter');

вот код, который все сломал
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@weart
'post_not_in' => get_the_ID()
Ответ написан
Ваш ответ на вопрос

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

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