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

Фильтр для записей в категории wordpress. Скрытие области для добавления полей. Поиск по произвольным полям на Search Everything

Мало кто знает, но в 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. Но вы должны понимать, что они ограничены только вашим воображением, есть множество способов их использования, которые можно встретить в плагинах и темах повсеместно.

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

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

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

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

1 - WooCommerce Фильтр товаров

WooCommerce Фильтр товаров это «все в одном», единственный фильтр для всех магазинов. Это гаджет для любого владельца интернет-магазина WordPress или WooCommerce.

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

2 - Реактивная Pro - WP Advance поиск, фильтр и сетка

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

3 - WooCommerce Инструменты диапазона

WooCommerce Инструменты диапазона имеет особенности которые позволяют взаимодействовать с клиентами наиболее легко и эффективно.

4 - WooCommerce Фильтр товаров

WooCommerce Фильтр товаров , представляя собой лучший плагин WooCommerce для веб-сайта, где продается автомобиль или запчасти. этот плагин позволяет применять фильтры, необходимые для уточните результаты, которые вы ищете. исследования показать, что 75% пользователей оставляют сайт Web 15 в секундах с того момента, как они не могут найти то, что они ищут.

5-WooCommerce Сетка: Дисплей + AJAX Фильтр продукта

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

6 - Гав | WooCommerce Продукция Фильтр

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

7 - WooCommerce Заказать Правила и фильтры

Le плагин WordPress WooCommerce Заказать Правила и фильтры позволяет применять легко фильтры в ваших командах с использованием фильтров и правил.

8 - SS WooCommerce Ajax Фильтры

Le плагин WooCommerce Фильтр Ajax позволяет фильтровать функциональные продукты множества атрибуты, интервалы цен дат, популярность средняя оценка , состояние запасов и т. д. ...

9-Wordpress Meta Data & Taxonomies фильтр

Le Plugi Фильтр метаданных WordPress и таксономий имеет большая гибкость, и на данный момент это решение наиболее полно, чтобы сделать очень большой контент легко доступным для поиска.


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

Однако вы также сможете ознакомиться с нашими , если вам нужно больше элементов для реализации ваших проектов создания интернет-сайтов, консультируясь с нашим руководством по созданию или Дива : лучший 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 . Без них мы не сможем воспользоваться расширяемостью WordPress в полной мере. В этой серии статей мы остановимся на фильтрах для WP — одном из лучших методов настройки для этой CMS . Серия состоит из семи частей. В них все наше внимание мы сосредоточим на следующем:

  • определим понятия WordPress -фильтра;
  • рассмотрим методы их внедрения в систему;
  • приведем примеры использования (в статье, которую вы читаете сейчас );
  • изучим 50 WordPress – фильтров (по десять в каждой статье ) с примерами;
  • и напишем итоговую статью, в которой резюмируем проведенную работу.

Есть буквально сотни WordPress -фильтров в ядре и эти 50 примеров только малая часть из них (около 10% ), так что вы сами можете добавить что-то из того списка и предложить примеры использования новых фильтров.

В любом случае, время для введения в WordPress -фильтры настало. Давайте начнем!

Что такое WordPress — фильтр

В Кодексе WordPress фильтрам дано следующее определение:

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

Итак, фильтр это функция на php , которая записывается в стек вызовов встроенной системы фильтров WordPress . Но в себе она может содержать сторонние функции и другие конструкции. Фильтр является одним из двух видов хуков (hooks ) в WordPress . Второй — действие (action ), но это предмет для другой серии статей.

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

Используем фильтры в WordPress

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

В этой статье мы собираемся проделать четыре вещи:

  • Создадим функцию фильтра;
  • Сделать из нее хук;
  • Убрать функцию из фильтра;
  • Создать свой собственный фильтр.

Создаем функцию и прикрепляем ее к фильтру

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

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

Сложно? На самом деле, нет. В приведенном ниже примере, мы напишем код функции, которая удаляет гласные во всем тексте:

Функция берет строку заголовка $title , удаляет гласные и возвращает строку. Довольно просто, верно? Теперь прыгнем на уровень выше, сделаем хук, и прицепим его к фильтру:

Заметили новую функцию? Взглянем на add_filter():

  • $tag (обязательный параметр ) – имя фильтра;
  • $function_to_add (обязательный параметр ) – имя функции для хука;
  • $priority (опция ) – Целое число для определения момента исполнения функции. По умолчанию равно 10: Функция сработает раньше, если вы снизите значение, и позже, если вы повысите его;
  • $accepted_args (опция ) — Значение, нужное чтобы определить количество аргументов, которые пропускает фильтр. Значение по умолчанию равно1.

Удаляем фильтр

Конечно же, мы также можем убрать функцию, прикрепленную к фильтру. Для этого используем функцию remove_filter() . И смотрим, как она работает:

Параметры такие же, как и в случае с add_filter() :

  • $tag (обязательный параметр ) – имя фильтра;
  • $function_to_remove (обязательный параметр ) – имя функции для удаления;
  • $priority (опция ) — приоритет функции (определено при первом подключении функции ).

Еще одна функция, remove_all_filters() , у которой всего лишь два параметра ($tag и $priority ), в которых указываются имя функции и приоритет. Имя функции говорит само за себя. Она отключает все функции, прицепленные к фильтру.

Создаем свой собственный фильтр

Хотите знать, как создаются фильтры? Для этого существует специальная функция apply_filters() , находящаяся в ядре. Конечно же, ее можно использовать и вне ядра, и это означает то, что мы можем создавать фильтры внутри наших плагинов.
Посмотрим, как это работает на практике:

  • $tag (обязательный параметр ) – имя привязываемой функции;
  • $value (обязательный параметр ) — значение, которое будет меняться функцией, подключенной к фильтру через add_filter();
  • $var1, $var2 и так далее (опционально ) – параметры фильтра (столько, сколько потребуется). Функция фильтра может использовать эти параметры, но они не смогут быть возвращены функциями.

Подумаем над таким примером: Представьте, что вы пишите функцию, которая возвращает только известную цитату Питера Гриффина:

Если вы хотите дать возможность пользователю отфильтровать эту цитату (не трогая код вашего плагина ), вам нужно использовать функцию apply_filters() следующим образом:

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

Теперь, каждый раз, когда будет вызвана функция peter_griffin_quote() , цитата Питера будет слегка видоизменяться, при этом код плагина останется неизменным. Отлично!

Заключение

Чем больше вы работаете с фильтрами, тем веселее идут дела. Есть сотни фильтров, и, изучая их, вы каждый раз подходите на один шаг ближе к тому, чтобы стать WordPress — гуру. В следующей части этой серии статей мы собираемся рассказать о 10 WordPress — фильтрах:

  • login_errors;
  • comment_post_redirect;
  • allowed_redirect_hosts;
  • body_class;
  • locale;
  • sanitize_user;
  • the_content;
  • the_password_form;
  • the_terms;
  • wp_mail_from.

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