Скрыть сообщение от отображения в WordPress

Я унаследовал сайт WordPress, и мне трудно понять, как отображаются сообщения. Я хочу скрыть пару из поля зрения (но все же смогу выдать URL для просмотра). Я не знаком с тем, как был закодирован конкретный шаблон. Шаблон выводит изображение и объявление для каждого события в определенной категории. Мясо кода, которое выплевывает это, выглядит так:

<?php
$args['post_type']='seasonalevents';
$args['posts_per_page']=-1;
$args['orderby'] = 'menu_order';

$activities = new WP_Query( $args );while ( $activities->have_posts() ) : $activities->the_post();
$image_id = get_post_thumbnail_id();
$image_url = wp_get_attachment_image_src($image_id,'thumb_345_154', true);
?>

Можно ли как-то исключить идентификаторы постов из кода выше? Любые советы или подсказки? Почувствуйте себя полностью сбитым с толку этим. Переменные определены над этим фрагментом кода. Я могу опубликовать в случае необходимости.

Спасибо!

0

Решение

WordPress-y способ сделать это будет добавить элемент в массив $ args под тремя, которые у вас уже есть:

$args['post__not_in'] = array(123,456,789);

Где 123, 456 и 789 — идентификаторы постов, которые вы хотите исключить из показа на этой странице.

Таким образом, весь ваш код будет выглядеть так:

<?php
$args['post_type']='seasonalevents';
$args['posts_per_page']=-1;
$args['orderby'] = 'menu_order';
$args['post__not_in'] = array(123,456,789);

$activities = new WP_Query( $args );while ( $activities->have_posts() ) : $activities->the_post();
$image_id = get_post_thumbnail_id();
$image_url = wp_get_attachment_image_src($image_id,'thumb_345_154', true);
?>
2

Другие решения

Да, есть!
Вы можете получить идентификатор текущего сообщения, используя http://codex.wordpress.org/Function_Reference/get_the_ID
Я рекомендую вам посмотреть на «петлю» и что это такое.

Этот фрагмент кода должен сделать работу 🙂

...
$not_these = array(1, 2, 7 /* array with post id's you got somewhere */);
while ( $activities->have_posts() ) : $activities->the_post();
if(in_array(get_the_ID(), $not_these)) continue;
...
1

Самое простое решение — отменить публикацию в панели администратора.

Или же

<?php
// The Loop
while($query->have_posts()):
$query->the_post();
if(get_the_ID()!=YOUR_POST_ID):
?>
<!-- Show Post -->

<?php
endif;
endwhile;
?>
-1
По вопросам рекламы [email protected]