Сделать липкое сообщение первым сообщением в цикле - WordPress - PullRequest
1 голос
/ 07 сентября 2011

Я хотел бы получить помощь по проблеме, возникшей у меня с функцией прикрепленных записей WordPress.

Я не могу понять, как заставить стик придерживаться начала цикла. У меня есть петля, похожая на его:

<?php query_posts('cat=10&posts_per_page=3');?>  
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?> 

И я бы хотел, чтобы это работало так:

  • Липкий пост
  • Обычный пост
  • Обычный пост

Вместо:

  • Обычный пост
  • Липкий пост
  • Обычный пост

Спасибо за помощь!

Ответы [ 2 ]

5 голосов
/ 12 января 2012

Мое решение здесь http://codex.wordpress.org/Class_Reference/WP_Query

Я сделал два запроса, в этом случае я не использую нумерацию страниц, возможно , это может помочь

    $sticky = get_option( 'sticky_posts' );
    $args_nonsticky = array(
        'showposts'     => -1,
        'post__not_in' => $sticky
    );
    $args_sticky = array(
        'posts_per_page' => -1,
        'post__in'  => $sticky
    );

    $the_query_sticky = new WP_Query($args_sticky); 
    $the_query_nonsticky = new WP_Query($args_nonsticky);

    if(!$the_query_sticky->have_posts() && !$the_query_nonsticky->have_posts()){
        //echo '<h1>NO POSTS FOUND</h1>';
    }else{              

    if ( $sticky[0] ) {
    while ($the_query_sticky->have_posts()) : $the_query_sticky->the_post(); 
      //sticky if so...
    endwhile;
    }

    while ($the_query_nonsticky->have_posts()) : $the_query_nonsticky->the_post(); 
        // non sticky
    endwhile;
}
1 голос
/ 08 сентября 2011

Я проверил это на своем демо-сайте.И порядок по умолчанию должен быть: - липкий - обычный - обычный Порядок по умолчанию НЕ - обычный - липкий - обычный

Я рекомендую проверить его с другой темой, например, двадцать.Оттуда это, вероятно, основная проверка отладки это: http://codex.wordpress.org/Sticky_Posts

...