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

    Есть вот такой код вывода случайных записей в 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 пост?

    Я так предполагаю, что может это связано с тем, что главная страница не является постом и тогда получается, что .$postidid. там пустой идёт, что «ломает» остальные вписанные исключения. А вот на странице постов вроде как всё работает как надо.

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    &post__not_in[]=

    Такой синтаксис здесь не сработает, post__not_in нельзя передать в виде строки, только в виде массива.

    Попробуйте так:

    
    $news->query(
    	array(
    		'orderby'      => 'rand',
    		'showposts'    => '10',
    		'cat'          => '-4,-7',
    		'post__not_in' => array( $posthide, 12, 16 ),
    	)
    );
    

    Спасибо, Сергей!
    Так работает 🙂

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «Исключить показ конкр. постов в коде WordPress?» закрыта для новых ответов.