WordPress — это универсальная система управления контентом (CMS), которая позволяет пользователям с легкостью создавать веб-сайты и управлять ими. Одним из распространенных требований к веб-сайтам WordPress является возможность сортировки сообщений на основе пользовательских метазначений. В этой статье мы рассмотрим несколько методов достижения этой функциональности, сопровождаемые примерами кода.
Метод 1: использование WP_Query с параметрами «meta_key» и «orderby»
$args = array(
'post_type' => 'post',
'meta_key' => 'your_meta_key',
'orderby' => 'meta_value',
'order' => 'DESC'
);
$query = new WP_Query($args);
Этот метод использует класс WP_Queryдля получения сообщений и их сортировки на основе определенного мета-ключа. Замените 'your_meta_key'фактическим ключом, по которому вы хотите выполнить сортировку. Для параметра 'orderby'установлено значение 'meta_value', что указывает на то, что мы хотим выполнить сортировку по метазначению.
Метод 2: использование пользовательского SQL-запроса
global $wpdb;
$posts = $wpdb->get_results(
"SELECT * FROM {$wpdb->prefix}posts
INNER JOIN {$wpdb->prefix}postmeta ON ({$wpdb->prefix}posts.ID = {$wpdb->prefix}postmeta.post_id)
WHERE {$wpdb->prefix}postmeta.meta_key = 'your_meta_key'
AND {$wpdb->prefix}posts.post_type = 'post'
AND {$wpdb->prefix}posts.post_status = 'publish'
ORDER BY {$wpdb->prefix}postmeta.meta_value DESC"
);
Этот метод предполагает написание собственного SQL-запроса с использованием глобальной переменной $wpdb. Замените 'your_meta_key'своим реальным мета-ключом.
Метод 3: использование плагина (расширенные настраиваемые поля)
Если вы используете плагин расширенных настраиваемых полей (ACF), сортировка сообщений по метазначениям становится еще проще. Установите и активируйте плагин ACF, а затем используйте параметр meta_keyв WP_Query:
$args = array(
'post_type' => 'post',
'meta_key' => 'your_meta_key',
'orderby' => 'meta_value',
'order' => 'DESC'
);
$query = new WP_Query($args);
.
Замените 'your_meta_key'ключом поля ACF.
Метод 4: использование плагина (пользовательский интерфейс пользовательского типа сообщения)
Плагин пользовательского интерфейса пользовательского типа сообщения позволяет создавать собственные типы сообщений с настраиваемыми полями. Чтобы отсортировать сообщения по метазначению с помощью этого плагина:
- Создайте настраиваемое поле с помощью пользовательского интерфейса настраиваемого типа публикации.
- Установите «Тип поля» как «Текст».
- В раскрывающемся списке «Упорядочить по» выберите «Настраиваемое поле (мета)».
- В поле «Метаключ» введите свой метаключ.
- Сохраните настраиваемое поле и используйте
WP_Query, как показано в методе 1.
Сортировать записи WordPress по метазначениям можно различными методами. Мы исследовали четыре различных подхода, включая использование класса WP_Query, пользовательских SQL-запросов и таких плагинов, как расширенные настраиваемые поля (ACF) и пользовательский интерфейс настраиваемого типа сообщений. Выберите метод, который лучше всего соответствует вашим требованиям, и внедрите его в свой проект WordPress, чтобы обеспечить индивидуальный пользовательский опыт.