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

Октябрь 1, 2015 г.

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

Читать

Добавление сайдбара в виде блочного шаблона в WP

Февраль 20, 2023 г.

С появлением Гутенберга (Gutenberg), микрошаблоны вышли на новый уровень. Посмотрим пример создания собственного микрошаблона и вставки его в шаблон. Начать надо с регистрации сайдбара, для этого вставим в functions.php темы следующий код: [crayon-6a9f344625027664292779/] ...

Читать

Обновление Inactive User Deleter плагина до v 1.1

Ноябрь 26, 2012 г.

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

Читать

References WP plugin

Июнь 22, 2016 г.

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

Читать
 

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

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



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