Сортировка записей по рейтингу (звездочкам)

Работает со встроенным рейтингом у записей, либо можете подстроить под свой плагин, заменив wpshop_rating_value на ваше название мета-поля, по которому будет идти сортировка.

Код ниже можно добавить в functions.php дочерней темы или установите, активируйте плагин ProFunctions и добавьте в него код:

/**
 * Сортировка записей в архивах по рейтингу (звездочкам)
 * https://support.wpshop.ru/faq/change-post-rating/
 * 
 * Если вам нужна подобная сортировка не во всех архивах,
 * замените условие is_archive() на другое
 */
add_action( 'pre_get_posts', function ( $query ) {
    if ( is_archive() && $query->is_main_query() && ! is_admin() ) {
        $query->set( 'meta_query', array(
            'relation' => 'OR',
            array(
                'key' => 'wpshop_rating_value',
                'compare' => 'NOT EXISTS'
            ),
            array(
                'key' => 'wpshop_rating_value',
                'compare' => 'EXISTS'
            ),
        ) );

        $query->set( 'order', 'DESC' );
        $query->set( 'orderby', 'meta_value_num date' );
    }
});
Вам помог ответ?
Похожие вопросы