Тарифы Услуги Сим-карты

Wp фильтр по произвольным полям. Поиск по произвольным полям wordpress

Часто бывает необходимо не выводить все категории на главную страницу блога wordpress. Нужно фильтровать записи по принадлежности к категории. Здесь вариантов два, первый фильтр - не выводить записи некоторых категорий, а второй выводить записи только избранных категорий. Я думаю чаще приходится сталкиваться с первым фильтром. Я захотел отфильтровать записи определенной категории, заполненной только справочной информацией. Зачем создавать кучу коротких постов на главной странице, к тому же в этой куче будут ещё и тематические статьи, а для них у меня категорий побольше, чем категорий со справочной информацией. Так что отфильтрую записи одной категории из вывода на главной странице и всё.

Есть замечательная функция в wordpress, которая изменяет стандартный запрос при прохождении циклом по базе. Это функция query_posts() , она принимает очень много параметров, влияющих на запрос, и как следствие вывод записей на страницу. Мне нужно указать категорию которую не нужно выводить. Для этих целей есть несколько вариантов:

  • параметр category__not_in - записи, не входящие в указанную категорию;
  • параметр cat - id категории.

Выберу ту что короче.

Запишем функцию для нашего случая:

query_posts(array(‘cat’ => -1));

Указывать значения рубрик, которые не будут входить в вывод нужно через запятую. Располагаете этот код выше цикла wordpress на главной странице «index.php» и записи из указанных категорий выводится не будут.

-1, -5));?>

Этот код отфильтрует категории 1 и 5, которые не будут выводится на главной странице.
Запускаем, проверяем.

Все работает - записи указанных категорий в выводе не обнаружены. Но есть одно НО!

Внизу страницы под записями находится постраничная навигация. В админ-панели можно ограничить количество выводимых записей на странице, и чтоб увидеть остальные записи придется воспользоваться этой навигацией. Только не вышло у меня этого сделать, кликаю по ссылкам навигации, а статьи все те-же. Начался квест, в финале которого приз - решение проблемы с постраничной навигацией. Я сразу не догадался от чего такое поведение. Часа два поисков и оказывается этот самый вызов функции query_posts() , причина такого поведения постраничной навигации. Но мне очень нужно убрать из вывода категории со справочной информацией и … Квест продолжается.

Долго ли, коротко ли…. Думал уже отложить поиск решения. Как зацепился за параметр ‘paged’ . Он отвечает за постраничную навигацию и для нормализации работы навигации нужно задать этому параметру значение get_query_var(‘paged’), что указывает на текущий номер страницы в постраничной навигации.

В итоге получаем функцию, которая переопределяет 2 параметра:

-1, "paged" => get_query_var("paged")));?>

Закрываем для вывода первую категорию и задаем параметр ‘paged’ .
Теперь код работает, как хотелось.

(Всего посетителей: 1 134, сегодня: 1)

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

Что такое произвольные поля для записей в WordPress

Произвольные поля — это мета-данные, которые задаются как пары ключ / значение, где «ключ» — имя, идентифицирующее конкретное поле.

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

Использование произвольных полей в WordPress

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

Давайте используем эту форму, чтобы показать настроение автора в момент написания статьи. Нажмите «Добавить новое поле» и заполните строки имя / значение, как Сегодняшнее настроение / Счастлив. Как только вы добавите это поле и сохраните пост, дополнительная информация, связанная со статьей, запишется в базу данных. Ее можно будет отобразить в любом месте вашей темы.

Поскольку это очень простой пример, мы будем использовать самый простой способ отображения этой информации. Допустим, что вы хотите показать свое настроение перед тем, как человек прочитает ваш пост. Для этого, перейдите в редактор внешнего вида и откройте файл «single.php». Найдите там цикл «loop», начинающийся с

while (have_posts()) : the_post();

и добавьте перед ним следующий код:

Теперь, на странице со статьей будет отображаться что-то вроде этого:

Сегодняшнее настроение: Счастлив

Этот способ отображения удобен, когда у вас есть только одно поле, но если у вас их 5, и вы хотите показать их в 5 разных местах? Тогда проще использовать хук «get_post_meta». Допустим, вы хотите отобразить только одно поле мета-данных в отдельном месте темы. Вам нужно добавить следующий код перед циклом «loop»:

ID, "Сегодняшнее настроение" , true); ?>

А что делать, если у вас есть дополнительные мета-данные, например, для песен, которые вы слушали во время написания поста? В таком случае, вы можете создать несколько ключей «Песни», имеющих различные значения. А затем, вставить перед циклом подобный код:

ID, "Песни", false); ?>
Этот пост вдохновлен музыкой:


    echo "
  • ".$track."
  • ";
    } ?>

Обратите внимание, что важную роль здесь играет третий параметр «false». Он указывает на то, что функция будет возвращать массив значений для данного ключа. Это очень удобный способ для отображения нескольких значений одного поля.

Расширенные возможности произвольных полей в WordPress

Использование мета-данных может выходить далеко за рамки показа настроения и песни. Например, некоторые популярные плагины, такие как Yoast’s WordPress SEO и WP-Post Ratings, а также многие другие, используют мета-данные для реализации своих функциональных возможностей.

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

Фильтр записей по произвольным полям

В WordPress есть очень хорошая функция «query_posts», которая, кроме всего прочего, имеет параметр для пользовательских полей. Таким образом, мы может использовать ее, чтобы создать своеобразный фильтр для отображения записей с определенным ключом / значением. Все, что вам нужно сделать, это вставить тег «query_posts» выше оператора цикла «loop».

Допустим, вы хотите сделать фильтр по всем статьям, чтобы отобразить только те, которые вы написали во время прослушивания музыки. Чтобы создать такой фильтр, вам нужно вставить следующий запрос перед началом цикла:

query_posts("meta_key=Песни");

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

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

query_posts("meta_key=Песни&meta_value=Metallica");

Поиск записей по произвольным полям

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

К сожалению, стандартный поиск ВордПресс не учитывает дополнительные данные, а только заголовок и содержание поста. Но эту проблему можно решить, улучшив поиск, с помощью плагина Custom Fields Search by BestWebSoft. Этот плагин позволяет добавить любое пользовательское поле в стандартный поиск ВордПресс. Все, что вам нужно, это выбрать те поля, которые поиск должен пропускать через фильтр.

Использовать этот плагин достаточно просто. Как только вы установите и активируете его, в меню административной панели появится пункт «BWS Plugins», открывающий страницу настроек плагина. На этой странице будет отображен список всех мета-данных, созданных на вашем сайте. Вам остается только выбрать нужные поля, чтобы стандартный поиск их учитывал, и сохранить результат.

Скрытие области для добавления полей

Часто, когда вы настраиваете сайт для клиентов, которые не очень «технически подкованы» в этом вопросе, очень уместно было бы удалить область для добавления мета-данных и заменить ее более удобным интерфейсом. Это особенно важно, когда получается много вариантов настройки мета-данных и поиск нужных становится очень сложным.

Удалить их достаточно просто. Вам нужно только открыть файл «functions.php» своей темы и добавить туда следующие строки:

add_action("admin_init","remove_custom_meta_boxes");
function remove_custom_meta_boxes() {
remove_meta_box("postcustom","post","normal");
remove_meta_box("postcustom","page","normal");
}

Заключение

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

Всем привет, сегодня хочу продолжить тему поиска по WordPress. На этот раз я расскажу вам как сделать поиск по полям wordpress (имеется ввиду произвольным полям, пользовательским, дополнительным полям они же custom fields).

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

Зачем нужен wordpress поиск по дополнительным полям

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

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

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

Поиск по произвольным полям wordpress позволяет:

  • выводить более релевантные результаты;
  • манипулировать с поиском WP;
  • показывать результаты, в которых не встречается поисковая фраза (например указывать слова с ошибкой и тому подобное).

Как организовать поиск по полям wordpress

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

Поиск по полям на Relevanssi

Отличный плагин, который позволяет по мимо прочего делать поиск по полям вордпрес. Весь процесс настройки очень простой и интуитивно понятный.

Имеется русский язык интерфейса и многое другое.

Для создания поиска достаточно указать в настройках какие поля нужно учитывать в поиске. Можно указать все, исключить скрытые или через запятую записать массив имен полей.

Чтобы сделать поиск по произвольным полям wordpress вам нужно:


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

Поиск по произвольным полям на Search Everything

Второй плагин для поиска по дополнительным полям, который я хочу порекомендовать, - Search Everything. Он имеет меньше настроек чем предыдущий, но это не мешает ему хорошо делать поиск по полям wordpress.

Чтобы подключить поиск по произвольным полям вам нужно:


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

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

Как в WordPress добавить фильтр в поиске?

Одним из способов решения этой задачи является использование бесплатного WordPress-плагина Search & Filter .

Плагин Search & Filter

С помощью Search & Filter посетители Вашего сайта смогут выполнять поиск по категориям, тегам, пользовательской таксономии, типу записей, дате публикации или любой их комбинации, чтобы действительно улучшить поисковые запросы. Поля фильтра могут отображаться в виде выпадающего меню, флажков, переключателей или множественных выборок.

Во-первых, плагин нужно установить и активировать. После активации плагин добавит новый пункт меню Search & Filter в панель администратора WordPress. Нажав по нему, Вы перейдете на страницу использования плагина с подробной документацией о том, как его использовать.

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

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

Для вставки его в любое место WordPress-шаблона используют служебную команду do_shortcode() , которая отображает на странице содержимое шорткода. Она будет иметь вид:

Если добавить этот код в файл search.php , то страница поиска будет выглядеть так:

Рассмотрим другой пример, включающий включающий категории, теги, типы записей и дату.

Теперь вместо использования выпадающего поля выбора Вы также можете использовать флажки и добавлять метки для каждого поля. Для этого нужно добавить еще два параметра в наш шорткод.

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

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

Давайте посмотрим другой пример. На этот раз мы добавим поля категорий, тегов и почтовых полей с разными заголовками и типами полей формы.

Также эти шорткоды можно использовать в виджетах.

Привет! Мы продолжаем разбирать самые интересные и самые полезные плагины для интернет-магазина Woocommerce ! Сегодня вы узнаете как добавить на свой сайт ajax фильтр товаров woocommerce. Вы сможете искать товары по фильтрам – категория, цена, размер, цвет, тег, распродажа, в наличии, по заголовку, SKU. Можно указать свои заголовки для фильтров. Можно скрыть определённые элементы. Можно отображать товары в фильтрах в виде ссылки или чек-бокса. Можно выбрать стиль отображения фильтров, вертикальный или горизонтальный. Можно указать количество колонок и т.д.

Установить плагин вы сможете прямо из админ-панели WordPress. Перейдите на страницу: Плагины – Добавить новый , введите название плагина в форму поиска, нажмите Enter, установите и активируйте плагин.

Далее, после установки и активации плагина, перейдите на страницу: . На данной странице будут отображаться все созданные фильтры. Чтобы создать новый фильтр нажмите вверху на кнопку – Add new .

– Form Title, укажите название фильтра.

– Layout, выберите стиль отображения фильтра.

– Empty Fields, не показывать пустые поля.

– Product Sorting, скрыть сортировку товаров.

– Product Count, скрыть отображение количества товаров.

– Pagination, скрыть пагинацию товаров.

– Products Per Page, количество отображаемых товаров на одной странице при включённой пагинации.

– Toggle Field Groups, отображение переключателя для групп.

– Scroll To Result, включить прокрутку.

– Result Page Template, показывать результаты на той же странице или на отдельной странице.

Далее, вам нужно с помощью мыши перетащить нужные вам фильтры в нижнее поле. Каждый фильтр можно настроить, указать название фильтра и настроить дополнительные параметры. В конце, чтобы сохранить созданные фильтры нажмите на кнопку – Save .