Сортировка публикаций в архиве по наличию прикрепленного изображения в WordPress

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

Лента таких страниц базируется на результате запроса через wp_query API. Последний фактически является набором фильтров, используемых для выборки публикации в wordpress.

В нашей задаче требуется сделать две вещи:

  1. присоединить таблицу мета полей публикаций с ключом ‘_thumbnail_id’,
  2. каким то образом использовать значение этого мета поля для сортировки.

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

то со вторым пунктом API не может вам помочь вовсе, т.к. набор допустимых ключей в фильтре orderby строго ограничен.

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

Начиная с версии WP 3.1.0 программисту доступен hook posts_clauses. Цель которого позволить изменить части выражения SQL на конечном этапе.

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

Функцию можно объявить где то в functions.php, а подключать её следует точечно в нужных шаблонах через add_filter / remove_filter.

Вот как то так:

Мало букафф? Читайте есчо !

Редирект после авторизации в wordpress

Февраль 27, 2011 г.

Задача практически типовая, потому что рано или поздно может понадобиться её решить. Специфика wordpress в довольно слабой документированности частных вопросов, что иногда отбивает охоту что то на нем делать. После авторизации со страницы /wp-login.php ...

Читать

Как добавить в contact form 7 плейсхолдер элемента

Апрель 1, 2023 г.

Неудобно, что прямо в редакторе нельзя задать нужные атрибуты, приходится искать либо в коде, чтобы подсмотреть как это реализовано, или на форумах. Нужно было создать элементы формы с атрибутом placeholder. Оказалось, что wpcf7 понимает следующую ...

Читать

Как проверить роль пользователя в Wordpress?

Июль 7, 2017 г.

Такой функции нет в классе WP_User. Но класс поддерживает свойство roles, которое содержит набор ролей в виде массива. Т.е. нам достаточно убедиться, что нужная роль находится в этом массиве. Чтобы не программировать совсем уж банальные вещи, расширим ...

Читать

Добавляем в редактор Wordpress дополнительные поля загрузки картинок

Август 2, 2019 г.

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

Читать
 

Комментарии к «Сортировка публикаций в архиве по наличию прикрепленного изображения в WordPress»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: