将置顶帖子设为循环中的第一篇帖子 - WordPress

发布于 2024-12-03 18:55:21 字数 398 浏览 0 评论 0原文

我想就 WordPress 置顶帖子功能遇到的问题寻求帮助。

我不知道如何使粘柱粘在循环的开头。我有一个类似于他的循环:

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

我希望它像这样工作:

  • 粘帖
  • 普通帖子
  • 普通帖子

代替:

  • 普通帖子
  • 粘帖
  • 普通帖子

感谢您的帮助!

I would like to get help with a issue I'm having with the WordPress sticky posts function.

I cant figure it out how to make the stick post stick to the beginning of the loop. I have a loop similar to his:

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

And I would like it to work like this:

  • Sticky post
  • Ordinary post
  • Ordinary post

Instead for:

  • Ordinary post
  • Sticky post
  • Ordinary post

Thanks for the help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

記憶穿過時間隧道 2024-12-10 18:55:21

我的解决方案在这里 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;
}

My solution here http://codex.wordpress.org/Class_Reference/WP_Query

I made two queries, in this case I'm not using pagination maybe this can help

    $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;
}
七月上 2024-12-10 18:55:21

我在我的演示网站上对此进行了测试。默认顺序应该是:
- 粘性
- 普通的
- 普通的
默认顺序不是
- 普通的
- 粘性
- 普通

我建议用其他主题测试它,比如二十。
从那里可能是基本的调试
检查这个:
http://codex.wordpress.org/Sticky_Posts

I tested this on my Demo site. And the default order should be:
- sticky
- ordinary
- ordinary
The default order is NOT
- ordinary
- sticky
- ordinary

I recommend testing it with other theme's, like twentyten.
From there it is probably basic debugging
check this:
http://codex.wordpress.org/Sticky_Posts

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文