Я унаследовал сайт 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);
?>
Можно ли как-то исключить идентификаторы постов из кода выше? Любые советы или подсказки? Почувствуйте себя полностью сбитым с толку этим. Переменные определены над этим фрагментом кода. Я могу опубликовать в случае необходимости.
Спасибо!
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);
?>
Да, есть!
Вы можете получить идентификатор текущего сообщения, используя 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;
...
Самое простое решение — отменить публикацию в панели администратора.
Или же
<?php
// The Loop
while($query->have_posts()):
$query->the_post();
if(get_the_ID()!=YOUR_POST_ID):
?>
<!-- Show Post -->
<?php
endif;
endwhile;
?>