Wordpress цикл повторяется - PullRequest
       4

Wordpress цикл повторяется

1 голос
/ 16 августа 2010

Допустим, у меня есть блог с 10 сообщениями.Я хочу отобразить 20 сообщений на моей главной странице.

Как я могу заставить цикл wordpress повторяться, пока он не достигнет 20?

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

Кстати ... я не хочу двух циклов ... простой ответ будет иметь 2 цикла, каждый с 10 сообщениями, что делает его равным 20.

Thx

Ответы [ 5 ]

1 голос
/ 16 августа 2010

Добавьте это в файл functions.php вашей темы:

function my_awesome_post_booster(){
  if(!is_home())
    return;
  global $wp_query;
  if( $wp_query->post_count < 20 ){
    $how_many = 20 - $wp_query->post_count;
    $newposts = get_posts('numberposts='.$how_many);
    $wp_query->posts = array_merge( $wp_query->posts, $newposts );
    $wp_query->post_count += count($newposts);
    my_awesome_post_booster();
  }
}

add_action('template_redirect', 'my_awesome_post_booster');
1 голос
/ 16 августа 2010

Используйте заполнитель текста Lorem Ipsum http://www.lipsum.com, чтобы создать достаточное количество постов, и используйте для них тот же большой палец. Имеет больше смысла, чем написание нового цикла (хотя это было бы легко) и его размещение / замена в темах.

И если вы беспокоитесь о SEO, эти проблемы совершенно неуместны. Заблокируйте свой сайт разработки от поисковых роботов, так как вы не хотите, чтобы сайт индексировался с несколькими постами и / или текстом Lorem Ipsum. Как только сайт перейдет в домен, создайте карту сайта и впустите ботов.

0 голосов
/ 16 августа 2010

Примерно так:

$count = 0;
while ( $count < 20 ) { 
    if ( !have_posts() ) { 
        rewind_posts();
    }
    the_post();
    $count++;
}

Это, конечно, предполагает, что в запросе есть хотя бы один пост

0 голосов
/ 16 августа 2010

Эта ссылка на WordPress Codex поможет вам: Цикл - Несколько циклов в действии

Вы можете запрашивать сообщения с помощью WP_Query, если у вас нет хотя бы 10, тоВы можете зациклить результаты снова.

<?php 
$my_query = new WP_Query('category_name=whatever');
$count = 0;
while ($my_query->have_posts()) { 
    $my_query->the_post();
    $count++;
}
if (count < 10) {
    //loop again or something
0 голосов
/ 16 августа 2010

есть настройка в бэк-энде, в которой вы можете изменить максимальное количество постов на главной странице - смотрите в настройках-> чтение

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