В WordPress с помощью класса WP_Query
можно фильтровать по одному полю и сортировать по другому. Для этого есть два основных параметра, которые могут быть использованы в объекте WP_Query
:
1. Параметр meta_query
- с помощью этого параметра можно фильтровать по значениям метаполей (custom fields) в WordPress. Пример использования:
$args = array( 'post_type' => 'post', 'meta_key' => 'custom_field_name', // Поле, по которому будем фильтровать 'meta_value' => 'desired_value', // Значение, по которому будем фильтровать 'meta_compare' => '=', // Оператор сравнения 'orderby' => 'date', // Поле, по которому будем сортировать 'order' => 'DESC' // Порядок сортировки ); $query = new WP_Query( $args );
2. Параметры orderby
и order
- с их помощью можно задать поле, по которому будет производиться сортировка, и порядок сортировки (ASC - по возрастанию, DESC - по убыванию). Пример использования:
$args = array( 'post_type' => 'post', 'meta_key' => 'custom_field_name', // Поле, по которому будем фильтровать 'meta_value' => 'desired_value', // Значение, по которому будем фильтровать 'meta_compare' => '=', // Оператор сравнения 'orderby' => 'meta_value_num', // Поле, по которому будем сортировать 'order' => 'ASC' // Порядок сортировки ); $query = new WP_Query( $args );
Таким образом, с помощью параметров meta_query
, orderby
и order
можно легко фильтровать записи по одному полю (метаполю) и сортировать их по другому (например, по дате публикации).