Пример: В моей области «POSTS» у меня 10 сообщений. Скажем, я не хочу отображать сообщение «8», которое имеет идентификатор (смотрящий в URL) «155».
Как я могу сделать, чтобы не отображать этот пост на моей домашней странице? Я хочу отображать его только тогда, когда я нажимаю на категорию.
Глядя на документацию и Google, я увидел, что вы не можете отобразить всю категорию. Просто используйте cat
и аргумент отрицательный идентификатор категории ($args = array ( 'cat' => ID_CATEGORY));
,
Но он скрывает всю категорию. Я хочу скрыть только 1 пост (дома) в этой категории.
Я также нашел этот код :
function exclude_single_posts_home($query) { //Caso esteja na home if ($query->is_home() && $query->is_main_query()) { //Não exiba estes posts $query->set('post__not_in', array(187,174,166)); } } add_action('pre_get_posts', 'exclude_single_posts_home');
Насколько я понимаю, он берет идентификатор сообщения и не отображает его на всякий случай дома. Ну, я не поймал: /
Так или иначе,
Как предотвратить определенные записи дома по ID? Поэтому он появляется только при нажатии на категорию.
obs: Мой дом отображается в page.php
Это сработало для меня. Можете ли вы попробовать и заменить исключенный идентификатор идентификатором сообщения, которое вы хотите исключить.
add_filter( 'pre_get_posts', 'exclude_specific_post_id' ); function exclude_specific_post_id( $query ) { if ( $query->is_main_query() ) { $query->set( 'post__not_in', array( 'YOUR_EXCLUDED_POST_ID_HERE' ) ); } }