加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 创建自己的WordPress循环的最佳方法是什么?

发布时间:2020-12-13 13:22:18 所属栏目:PHP教程 来源:网络整理
导读:似乎有三种主要方法可以使用其内置函数从Wordpress输出内容,推荐使用WP_Query: WP_Query query_posts get_posts 它们之间有什么区别? (我知道WP_Query是类,其他两个是方法). 在同一页面上拥有多个循环的最简洁方法是什么,它们之间没有任何干扰? 我正在寻
似乎有三种主要方法可以使用其内置函数从Wordpress输出内容,推荐使用WP_Query:

> WP_Query
> query_posts
> get_posts

它们之间有什么区别? (我知道WP_Query是类,其他两个是方法).

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

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

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

> Define Your Own WordPress Loop Using WP_Query

我已经使用了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; ?>

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; ?>

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

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

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

-克里斯

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读