@Ysery

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

Доброго времени суток, уважаемые специалисты.

Есть вот такой код вывода случайных записей в WordPress.

<?php
$posthide = get_the_ID();
?>
<?php $news = new WP_query(); $news->query('orderby=rand&showposts=10&cat=-4,-7&post__not_in[]='.$posthide.''); ?>
<?php while ($news->have_posts()) : $news->the_post(); ?>
<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>


Я его отредактировал вот так:

...ews->query('orderby=rand&showposts=10&cat=-4,-7&post__not_in[]='.$postidid.',12,16'); ?>
<?php while ($new....


Скрыв из выдачи 12 и 16 пост (запись). Но кажется код не работает, по крайней мере на корневой странице сайта я вижу исключённые посты в выдаче. Как правильно исключить 12 и 16 пост?
  • Вопрос задан
  • 35 просмотров
Решения вопроса 1
@a-kh
web-разработчик
Лучше перепишите код вот так:
<?php
$posthide = get_the_ID();
$args = array(
     'orderby' => 'rand',
     'showposts' => 10,
     'cat' => array(-4,-7),
     'post__not_in' => array( $posthide, 12, 16)
);
$news = new WP_query(); $news->query($args); 
while ($news->have_posts()) : $news->the_post(); 
?>
<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>

Немного не уверен, что в cat нужен array, если будет ошибка, попробуйте там просто -4,-7.
Так код нагляднее и проще написать, чем пытаться в строке найти ошибки с кавычками и т.п.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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