Переопределить количество по умолчанию, чтобы показать для одного цикла?

wordpress.stackexchange https://wordpress.stackexchange.com/questions/8796

  •  16-10-2019
  •  | 
  •  

Вопрос

Возможно ли переопределить набор сообщений в блогах, чтобы показать на страницу (как определено в соответствии с настройками чтения в администраторе WordPress)? Я хочу сделать это так, как я использую пользовательский цикл, покажет неограниченный номер.

Это было полезно?

Решение

Аргумент, который контролирует, сколько постов показано в запросе, это post_per_page

<?php query_posts( array( 
                         'post_type' => 'post',
                         'posts_per_page' => -1 ) 
      ); 
?>

Также следует отметить, что в филиале 3.0 есть ошибка, которая предотвращает отображение всех постов -1 целого числа. Он зафиксирован в 3.1, но обходной путь состоит в том, чтобы использовать очень высокое число вместо -1

видеть:

http://core.trac.wordpress.org/ticket/15150

Другие советы

Конечно, измените запрос, добавив

<?php query_posts('post_type=post&numberposts=-1'); ?>

Эйлин прав, но лучше использовать аргументы в качестве массива <?php query_posts( array( 'post_type' => 'post', 'numberposts' => -1 ) ); ?>

У меня была та же проблема. Я решил добавить пользовательскую переменную, а затем поймать эту переменную во время pre_get_posts Чтобы установить post_per_page Query_var:

function custom_query_vars_filter($vars) {
  $vars[] = 'post_per_page_override';
  return $vars;
}
add_filter( 'query_vars', 'custom_query_vars_filter' );


add_action( 'pre_get_posts', 'rc_modify_query_get_design_projects' );
function rc_modify_query_get_design_projects( $query ) {

if( $query->query_vars['post_per_page_override'] == '3') {
        $query->set('posts_per_page', '3');
    }
}

Затем я пошел еще дальше и заставил его получить точную сумму, которую вы хотите отобразить в пользовательском запросе var:

function custom_query_vars_filter($vars) {
  $vars[] = 'post_per_page_override';
  return $vars;
}
add_filter( 'query_vars', 'custom_query_vars_filter' );


add_action( 'pre_get_posts', 'rc_modify_query_get_design_projects' );
function rc_modify_query_get_design_projects( $query ) {

if( $query->query_vars['post_per_page_override']) {
        $customPPPlimit = $query->query_vars['post_per_page_override'];
        $query->set('posts_per_page', $customPPPlimit);
    }
}

Работал на меня ..

Лицензировано под: CC-BY-SA с атрибуция
Не связан с wordpress.stackexchange
scroll top