创建自己的Wordpress循环的最佳方法是什么?

mel*_*yal 8 php wordpress loops

似乎有三种主要方法可以使用其内置函数从Wordpress输出内容,WP_Query建议使用:

它们之间有什么区别?(我明白这WP_Query是班级,其他两个是方法).

在同一页面上有多个循环的最简洁方法是什么,它们之间没有任何干扰?

我正在寻找你如何编程WP循环的例子; 例如,按类别输出2个单独的帖子列表,附件,元数据等.

这是我到目前为止找到的最佳参考:

小智 6

我已经使用了WP_Query和get_posts.在我的一个侧边栏模板中,我使用以下循环来显示来自特定类别的帖子,方法是使用带有"category_to_load"键的自定义字段,其中包含类别slug或类别名称.真正的区别在于任何一种方法的实施.

在我的一些模板中,get_posts方法看起来如此:

<?php    
    global $post;
    $blog_posts = get_posts( $q_string );
    foreach( $blog_posts as $post ) : 
    setup_postdata( $post );
?>
    <div class="blog_post">
        <div class="title">
            <h2>
                <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
            </h2>
            <span class="date"><?php the_time( 'F j, Y' ); ?> by <?php the_author(); ?></span>
        </div>
        <?php the_excerpt(); ?>
    </div>
    <?php endforeach; 
?> 
Run Code Online (Sandbox Code Playgroud)

WP_Query实现如下所示:

$blog_posts = new WP_Query( 'showposts=15' );

while ( $blog_posts->have_posts() ) : $blog_posts->the_post(); ?>

    <div <?php post_class() ?> id="post-<?php the_ID(); ?>" class="blog_post">
        <div class="title">
            <h2>
                <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a>
            </h2>
            <span class="date"><?php the_time( 'F jS, Y' ) ?> <!-- by <?php the_author() ?> --></span>
        </div>
        <div class="entry">
            <?php the_content(); ?>
        </div>
        <p class="postmetadata"><?php the_tags( 'Tags: ', ', ', '<br />' ); ?> Posted in <?php the_category(', ') ?> | <?php edit_post_link('Edit', '', ' | '); ?>  <?php comments_popup_link('No Comments &#187;', '1 Comment &#187;', '% Comments &#187;'); ?></p>
    </div>

<?php endwhile; ?>
Run Code Online (Sandbox Code Playgroud)

主要区别在于您不必重置全局$ post变量,并且在使用WP_query时也不必通过在每个post对象上调用setup_postdata($ post)来设置post数据.您还可以在WP_Query函数上使用可爱的have_posts()函数,这在get_posts()中是不可用的.

你不应该使用query_posts()函数,除非你真的想要,因为它修改了页面的主循环.查看文档.因此,如果您正在构建一个特殊页面来显示您的博客,那么调用query_posts可能会弄乱页面的循环,因此您应该使用WP_Query.

那只是我的两分钱.我的最终建议,你的第一选择应该是WP_Query.

-克里斯