Поиск постов среди всех сайтов WordPress Multisite

Опубликовано: 01.11.2017

В этой статье я покажу вам, как реализовать поиск по всей сети WordPress Multisite:

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

Поиск постов через параметр s= функции network_query_posts() (аналог query_posts()).

Посмотрите на этот пример ниже, он позволяет вывести все посты, которые найдены по запросу «вордпресс».

$args = array ( 's' => 'вордпресс' , // поисковой запрос 'posts_per_page' => - 1 ) ; $nposts = network_query_posts ( $args ) ; // или network_query_posts('s=вордпресс&posts_per_page=-1'); foreach ( $nposts as $npost ) : echo '<p>' . $npost -> post_title . '</p>' ; endforeach ;

Как переделать стандартный поиск WordPress, чтобы он искал по всем сайтам сети

Вообще тут есть два варианта — простой и сложный. Простой вариант — когда все результаты поиска отображаются на одной странице (ну или вы потом сможете сделать, чтобы подгружались новые при скролле), сложный вариант — это сделать рабочей стандартную вордпрессовскую постраничную навигацию.

Постараюсь предоставить вам подробнейший алгоритм на оба случая.

Простой вариант.

Заходите во «Внешний вид > Виджеты» и вставляйте стандартный виджет поиска, куда вам нужно, для простого варианта его переделывать не придётся. В папке с темой находим файл search.php, отвечающий за вывод результатов поиска, открываем его.

В самое начало файла вам понадобится вставить: