Intereting Posts
Следующая и предыдущая ссылка в пользовательском типе сообщения в том же таксономии Исправлена ​​кнопка и слайд-шоу в загрузке шаблона на страницу Не удается получить доступ к странице входа после сброса пароля Настроить тему на WordPress.org Оператор «NOT IN» не работает в tax_query Как отобразить необработанную HTML-страницу (минуя тему WordPress, скрипты и т. Д.) wordpress wp_enqueue_script () не работает WP добавляет строки длинной версии в CSS и JS-файлы Динамически изменять страницу, загружающую Как изменить текст автоматических электронных писем, например, после смены пароля? (Немецкая локализация) wp_enqueue_style встроенные стили Как перенаправить пользователей без регистрации на определенную страницу? Как защитить медиа-каталог с помощью .htaccess? Как я могу использовать статический (ish) URL для отображаемого изображения для сообщения? С чем связана команда RegEx add_rewrite_tag ()?

Объединение категорий (запросы с несколькими терминами таксономии)

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

Вот что я работаю:

Эта функция работает, чтобы показать список:

function my_custom_loop_three_posts($category, $tag, $offset) { $args=array( // showposts has been replaced, use 'posts_per_page' instead // 'showposts' => 1, 'posts_per_page' => 3, // this has been replaced, use 'ignore_sticky_posts' // 'caller_get_posts' => 1, 'ignore_sticky_posts' => true, ); if ($category) { $args['cat'] = $category; } if ($tag) { $args['tag'] = $tag; } if ($offset) { $args['offset'] = $offset; } $my_query = new WP_Query($args); // ... rest of function to output loop if( $my_query->have_posts() ) { while ($my_query->have_posts()) : $my_query->the_post(); ?> <div class=""> <a href="<?php the_permalink() ?>" > <div class="menu-item-list-item menu-item-list-item-not-title"> <?php the_title(); ?> </div> </a> </div> <?php endwhile; } //if ($my_query) wp_reset_query(); // Restore global post data stomped by the_post(). }; function myFilter($query) { if ($query->is_feed) { $query->set('cat','-121'); } return $query; } add_filter('pre_get_posts','myFilter'); 

И я просто использую это, чтобы отобразить список на странице:

 <?php my_custom_loop_three_posts(330, NULL, 1); ?> 

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

Solutions Collecting From Web of "Объединение категорий (запросы с несколькими терминами таксономии)"

Этот тип поведения документирован в документации WP_Query . Вы можете использовать список идентификаторов категорий, разделенных запятыми, а не только один. Например (разорвано сразу на странице Codex):

 $query = new WP_Query( array( 'cat' => '2,6,17,38' ) ); 

С тегами это немного другое, но не слишком много:

 $query = new WP_Query( array( 'tag__in' => array( 37, 47 ) ) ); 

Возможно, вы сможете использовать его, как у кошек с идентификаторами, разделенными запятыми, но я не уверен в своей голове, не тестируя его, и документы немного неясны в этом вопросе. Но в основном, с несколькими настройками, если необходимо, вы можете использовать одну и ту же функцию и называть ее так:

 <?php my_custom_loop_three_posts('33,44,55', array(12,13,14), 1); ?> 

Если вы используете этот пример, просто убедитесь, что вы меняете

 if ($tag) { $args['tag'] = $tag; } 

чтобы:

 if ($tag) { $args['tag__in'] = $tag; } 

Надеюсь, это имеет смысл. Документы должны довести вас до конца.