Intereting Posts
Добавить классы сообщений для пользовательских таксономий в пользовательский тип сообщения? Плагин Favicon для WordPress работает в сетевом режиме (multisite)? Ограничить доступ к сообщению, если он в настоящее время редактируется Наиболее эффективное использование запросов БД Миграция: копирование содержимого базы данных на другой сервер Как загрузить старые версии плагинов? Изменить содержимое элемента списка в навигации по меню, чтобы добавить дочерний элемент с определенным классом Локализация WordPress Спам, введенный в общий кэш кэша w3 Тема одиночной страницы Сжатие / минимизация темы или W3 Total Cache – что я должен использовать? Таблица списков WP в пользовательском типе сообщений get_the_category и эхо-ссылка для самой детской / самой глубокой категории TwentyTwelve детская тема style.css? Ver = 3.8.1 Передача значения JQuery для функции WordPress

Исключить категорию из цикла, не работающего

У меня этот код в моем файле index.php. У меня есть другой шаблон для статической домашней страницы, это страница блога. Я пытаюсь исключить все сообщения с категорией «новый», которая является tag_id «13»

<?php query_posts($query_string . '&cat=-13'); ?> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><p class='lead'><?php the_title(); ?></p></a> <p><?php the_excerpt(); ?> <a href="<?php the_permalink()?>">read in full</a></p> <p class='muted'><small>Written by: <?php the_author_posts_link(); ?><br> <?php the_time('F jS, Y') ?></small></p><hr> <?php endwhile; ?> 

Любые идеи, почему это не работает?

Solutions Collecting From Web of "Исключить категорию из цикла, не работающего"

Не используйте query_posts() . pre_get_posts этого используйте pre_get_posts :

 function wpse82745_filter_pre_get_posts( $query ) { // Only modify the main loop, // and only in the blog posts index if ( is_home() && $query->is_main_query() ) { $query->set( 'category__not_in', array( '13' ) ); } } add_action( 'pre_get_post', 'wpse82745_filter_pre_get_posts' ); 

Этот обратный вызов исключает категорию 13 из основного цикла в индекс сообщений блога.

$query_string , вероятно, не инициализирован или не объявлен как глобальная переменная. Попробуйте добавить

 <?php global $query_string; ?> 

перед вашим кодом

Я столкнулся с одной и той же загадочной проблемой, но изо всех сил пытался ее решить. Я пробовал все предложения в комментариях здесь, но ничего не работало.

В конце концов, поскольку ключ сохранял разбивку на страницы (так как это было в основном блоге блога сайта, и я хотел исключить «Другие новости»), я пробовал это:

 // Exclude the Other News category $otherNews = get_category_by_slug('other-news'); $excludeID = $otherNews->term_id; //query_posts($query_string . '&cat=-' . $excludeID); <-- Doesn't work for some reason $args = array('cat' => '-' . $excludeID, 'paged' => $paged ); $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; query_posts($args); 

… и это казалось безупречным.