Сортировка публикаций в архиве по наличию прикрепленного изображения в 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.

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

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

References WP plugin

Июнь 22, 2016 г.

Искал плагин для Wordpress, который бы позволил связывать публикации друг с другом. Видно, что не я один искал. :) Пришлось написать свой плагин, разместил ...

Читать

Отключение страницы вложения в Wordpress

Январь 10, 2017 г.

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

Читать

Удаление пользователей в WP, обновление плагина Inactive user deleter

Сентябрь 4, 2017 г.

Плагин продолжает мной развиваться по заявкам пользователей. Вот что было добавлено в версию 1.42. На этот раз обратился пользователь Manish Khullar, ...

Читать

Отключение emoji в WP

Апрель 1, 2025 г.

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

Читать
 

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

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



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