Фильтрация записей по дате создания wordpress плагин. Beautiful Taxonomy Filters: фильтры таксономий для произвольных типов записей в WordPress

Привет! Мы продолжаем разбирать самые интересные и самые полезные плагины для интернет-магазина 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 .

Мало кто знает, но в 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. В этой статье мы покажем как добавить фильтр таксономий на Ajax в поиск WordPress.

Зачем использовать фильтр таксономий на Ajax в поиске WordPress?

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

Первым делом вам необходимо установить и активировать плагин Ajax WP Query Search Filter . После активации он добавит новый элемент меню “Ajax WPQSF” в сайдбар административной панели сайта. Клик на это меню переместит вас на страницу плагина, где вы можете нажать на кнопку Add New Search Form для создания своей формы поиска.

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

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

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

Следующая вкладка позволяет настраивать результаты поиска и другие параметры. На этой вкладке вы можете указать дефолтное слово для поисковой формы. Если пользователь выберет таксономию или же произвольное мета поле и введет ключевое слово. то плагин выполнит поисковый запрос слова и проигнорирует выбор пользователем таксономии и произвольного мета поля.

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

Мы надеемся, что эта статья помогла вам добавить фильтр таксономий на Ajax в поиск WordPress на ваш сайт. Использование этого продвинутого поиска и функция сортировки может помочь вам создать простые, но очень эффективные фильтры для сортировки и поиска на вашем сайте на 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-плагина Search & Filter .

Плагин Search & Filter

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

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

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

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

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

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

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

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

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

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

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

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