Intereting Posts
Добавление терминов таксономии на основе пользовательского поля Добавляем поле «наиболее понравившееся сообщение», основанное на рейтинге facebook? Добавление элемента управления пользовательскими настройками для Posts_Per_Page Для полной резервной копии достаточно ли скопировать htdocs и экспортировать базу данных? Отдельная тема для нескольких WordPress Вставка ссылки для загрузки в операциях быстрого редактирования медиа-библиотеки? Изменение запроса по дате из месяца Термин и подзаголовок из запроса пользовательского типа Изменение get_author_posts_url () в Multisite Прослушать действие публикации Редактор содержимого, создающий пустые абзацы в пространствах и создающий в файле_excerpt Есть ли способ группировать определенные CPT в одном элементе панели инструментов? Эхо-теги с выражением if и отображения php внутри IF? wp_update_post ведет себя по-разному для разных пользователей Измените тему Ixion, чтобы добавить сообщение на главной странице

Вручную создать WP_Query

Я пытаюсь вручную построить запрос в 'loop.php', который выводит список из 3 сообщений из пользовательского типа сообщения над результатами, автоматически предоставляемыми при выполнении поиска в WordPress.

Таким образом, у меня есть следующий код, который отображает эти результаты, как я предполагал:

<?php // The Query $query1 = new WP_Query( array( 'post_type' => 'sdm_downloads', 'posts_per_page' => 3) ); if ( $query1->have_posts() ) : echo '<div style="background-color:#fffced; padding:10px;margin-bottom:20px;">'; echo '<h3>Selected relevant items from our Briefings library:</h3>'; // The Loop while ( $query1->have_posts() ) { $query1->the_post(); <article class="article-archive" id="post-<?php the_ID(); ?>"> <header> <hgroup> <p><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a> <p> <!--<p class="entry-meta">Posted <strong><?php echo human_time_diff(get_the_time('U'), current_time('timestamp')) . ' ago'; ?></strong></p>--> </hgroup> </header> </article> <?php } echo '</div>'; endif ?> 

Это замечательно, за исключением того, что он просто вытаскивает три последних сообщения из этого типа сообщения. Итак, я решил, что мне нужно вручную добавить условия поиска следующим образом:

 $query1 = new WP_Query( array( 'post_type' => 'sdm_downloads', 'posts_per_page' => 3, 's' => $s) ); 

Однако это ничего не показывает. Аналогично, если я заменю переменную s на строку, я все равно не получаю никаких сообщений. Я даже удалил все аргументы, кроме строки, и не получаю никаких результатов, например:

 $query1 = new WP_Query( array( 's' => 'awards') ); 

Любые идеи, почему это происходит и / или как это можно исправить?

Благодарю.


Если я делаю дамп запроса без указания аргумента 's', я получаю следующее

 string(226) "SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type = 'sdm_downloads' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private') ORDER BY wp_posts.post_date DESC LIMIT 0, 3" 

Если я добавлю аргумент 's' в WP_Query, я получаю следующий дамп:

 string(32) "SELECT * FROM wp_posts WHERE 1=2" 

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

Тем временем, если у кого-нибудь есть предложения по поводу того, как с этим бороться, я буду рад услышать их.

Если вы используете Relevanssi, он возится с собственным поиском (точно не знаю, в какой точке), поэтому стандартный запрос не работает.

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

 relevanssi_do_query($query1); 

Обратите внимание, что этот параметр является объектом запроса, который вы создали до:

 $query1 = new WP_Query( array( 'post_type' => 'sdm_downloads', 'posts_per_page' => 3) );