Intereting Posts
Подчеркивание в пользовательских полях Добавление HTML в атрибут заголовка изображения Элементы меню фильтра по пользовательской роли пользователя на странице Как добавить несколько экземпляров мета-поля в пользовательский тип сообщения Создать страницу блога, чтобы увидеть только одну категорию Форматы отображения / запроса Как ограничить доступ к wp-содержимому, wp-includes и всем подпапкам Как заказать WP_Query для группировки результатов? Пользовательская таксономия с пользовательскими типами сообщений Нет сообщений Добавление класса body, когда сообщение содержит определенный короткий код Смешивание вкладок Foundation с вкладкой Active Directory в WordPress и дисплеем Вставить PHP-код через короткий код? Как создать стандартную настройку по умолчанию для текстовых и изображений Заголовки уже отправлены, когда пользователь автолога после регистрации Сделать более подробным переключением в the_content на одном продукте в Woocoomerce

Правильный синтаксис для добавления boolean в array ()

Условный php-вопрос … У меня есть массив и вам нужно добавить логическое ИЛИ, чтобы проверить дополнительную категорию 4. Не знаю, какой синтаксис использовать для добавления большего количества идентификаторов категории. Я пробовал массив ('cat' => -9, -4, но это только распознает первый id.

query_posts( array_merge( $wp_query->query, array('cat' => -9, 'ignore_sticky_posts' => 1, 'post__not_in' => $sticky, 'posts_per_page' => get_option('posts_per_page')) 

Ваш код не работает, потому что:

 array( 'cat' => -9, -4 ); 

такой же как:

 array( 'cat' => -9, -4 ); 

-4 – это его собственный элемент, а не часть аргумента «cat».

Правильный способ сделать то, что вы пытались сделать:

 array ( 'cat' => array( -9, -4 ) ); 

Но это тоже потерпело бы неудачу, потому что «cat» принимает одно значение, а не набор / массив / список из них, и это не правильный параметр:

http://codex.wordpress.org/Class_Reference/WP_Query#Category_Parameters

  • cat (int) – использовать идентификатор категории.
  • category_name (строка) – используйте категорию slug (NOT name).
  • category__and (array) – использовать идентификатор категории.
  • category__in (массив) – используйте идентификатор категории.
  • category__not_in (array) – использовать идентификатор категории.

Так что вы на самом деле хотели category__in .

Я также рекомендую вам читать основные массивы в PHP на php.net, особенно использование $array[] = -4; и [] .

Но более тревожно

Вы делаете это неправильно. Первое, что нужно узнать, это то, что любой код, который использует query_posts по определению является плохим кодом.

Причина этого в том, что то, что вы делаете, ужасно неэффективно, это означает, что WordPress уже выполнил всю операцию по подъему базы данных, а затем вы сказали «Нет, вернитесь и сделайте все сначала, но с этими параметрами».

Если WordPress был офисным помощником, он обернулся и спросил, почему вы не просто сказали, с чего вы хотели начать, ну вы можете!

См. Этот вопрос о том, почему и когда вам следует / не следует использовать query_posts

pre_get_posts

Например, это изменяет запрос главной страницы, чтобы отфильтровать категории:

 function filter_cats_on_home( $query ) { if ( $query->is_home() && $query->is_main_query() ) { $query->set( 'category__in', array( -1,-1347) ); } } add_filter( 'pre_get_posts', 'filter_cats_on_home' ); 

Это намного, намного, намного более чистое и быстрое, чем наличие query_posts на главной странице.

Но еще более тревожно

 'cat' => -9, 

Я вижу жестко заданные значения. Это не переносимо. Вместо этого выполните следующие действия:

  • Храните идентификатор категории / категории в опции или метатете сообщений и предоставляйте какой-либо пользовательский интерфейс
  • Ссылка на категории по почте, чтобы экспорт и импорт содержимого или сайта не нарушал все.

Вам нужно будет поместить идентификаторы категорий внутри цитаты, как показано ниже:

 'cat' => array ( -9, -4, -12 ) 

И попробуйте избежать query_posts