function custom_sort_archive_by_title($query) {
if (is_archive() && $query->is_main_query()) {
$query->set('orderby', 'title');
$query->set('order', 'ASC');
}
}
add_action('pre_get_posts', 'custom_sort_archive_by_title');
Метод 2: использование класса WP_Query
Другой подход — создать собственный объект WP_Query с нужными параметрами сортировки. Этот метод дает вам больше гибкости и контроля над запросом. Вот пример фрагмента кода:
$args = array(
'post_type' => 'post',
'orderby' => 'title',
'order' => 'ASC',
);
$custom_query = new WP_Query($args);
if ($custom_query->have_posts()) {
while ($custom_query->have_posts()) {
$custom_query->the_post();
// Display your post content here
}
wp_reset_postdata();
}
Метод 3: использование специального плагина.
Если вы предпочитаете более модульный подход, вы можете создать собственный плагин, который добавляет опцию сортировки в интерфейс администратора страницы архива. Таким образом, вы можете легко переключаться между различными вариантами сортировки, не изменяя файлы темы. Вот упрощенный пример кода:
function add_custom_sorting_option() {
add_filter('manage_edit-post_sortable_columns', 'register_custom_sortable_column');
}
function register_custom_sortable_column($columns) {
$columns['post_title'] = 'Title';
return $columns;
}
add_action('admin_init', 'add_custom_sorting_option');