В WordPress для добавления сортировки по произвольному полю в выводе записей вы можете использовать функцию pre_get_posts
. Эта функция позволяет изменить параметры запроса до его выполнения и тем самым настроить сортировку вывода записей.
Для начала, вам понадобится добавить код в файл functions.php
вашей темы или в плагин, который вы используете. В этом коде вы будете определять параметры сортировки.
Например, допустим, у вас есть произвольное поле price
, по которому вы хотите отсортировать записи. Для этого добавьте следующий код:
function custom_orderby( $query ) { if ( $query->is_main_query() && is_archive() ) { $query->set( 'orderby', 'meta_value_num' ); // Указываем, что сортируем по числовому значению $query->set( 'meta_key', 'price' ); // Указываем название произвольного поля, по которому сортируем } } add_action( 'pre_get_posts', 'custom_orderby' );
В этом коде мы проверяем, является ли запрос главным (то есть запросом для вывода записей), и является ли текущая страница архивной (например, категорией или меткой). Затем мы устанавливаем параметры orderby
и meta_key
для запроса. В данном случае мы указываем, что сортируем по числовому значению поля price
.
Вы можете настроить код в соответствии со своими потребностями. Например, вы можете изменить название произвольного поля или выбрать другой тип сортировки (meta_value
, meta_value_num
, date
, title
и т. д.).
После добавления этого кода WordPress будет сортировать вывод записей по указанному произвольному полю.