изменить стандартный WordPress запрос на заголовок orderby - PullRequest
4 голосов
/ 24 июня 2011

Я хотел бы изменить запрос WordPress по умолчанию на заголовок orderby при просмотре категории, а не на идентификатор записи.

По причинам, слишком скучным для объяснения (!) Я хотел бы изменить настройку по умолчанию, а нечем использовать пользовательский запрос (который я знаю, как сделать)

В идеале это был бы некоторый код, который идет в functions.php моего шаблона, вместо того, чтобы взламывать установку ядра.

Спасибо за помощь людям!

Ответы [ 3 ]

34 голосов
/ 13 марта 2012

Вы также можете использовать действие 'pre_get_posts' для изменения переменных порядка и порядка, например:

add_action( 'pre_get_posts', 'custom_get_posts' );

function custom_get_posts( $query ) {

  if( (is_category() || is_archive()) && $query->is_main_query() ) {    
    $query->query_vars['orderby'] = 'name';
    $query->query_vars['order'] = 'ASC';
  }

}

Примечание: проверка is_main_query () помогает убедиться, что вы не вызываете непреднамеренного поведения в плагинах и функциональности тем. Удаление это нормально, но убедитесь, что вы знаете, на что еще вы влияете!

6 голосов
/ 24 июня 2011

в вашем архиве. Php, найдите код

if (have_posts()) : while (have_posts()) : the_post();

и замените его на:

$cat_posts = new WP_Query($query_string."&orderby=title&order=ASC");
if ($cat_posts->have_posts()):while($cat_posts->have_posts()):$cat_posts->the_post();

это должно сработать.

update: это делается, если вы хотите изменить исходный код.

0 голосов
/ 22 февраля 2015

ну, вы можете сделать еще одну вещь в вашем архиве. Php

используйте эту строку кода

global $query_string; // required
$posts = query_posts($query_string."&orderby=title&order=ASC");

перед этой строкой кода

if (have_posts()) : while (have_posts()) : the_post();

выполучит то, что вы хотите, по умолчанию цикл WordPress.Я надеюсь, что это вам очень поможет.

спасибо всем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...