对页面而不是帖子使用WordPress LOOP?

2021/01/30 11:41 · php ·  · 0评论

有没有一种方法可以WordPress中使用THE LOOP加载页面而不是帖子?

我希望能够查询一组子页面,然后在其上使用THE LOOP函数调用-the_permalink()和之类的东西the_title()

有没有办法做到这一点?我没有在query_posts()文档中看到任何东西

是的,那是可能的。您可以创建一个新的WP_Query对象。做这样的事情:

query_posts(array('showposts' => <number_of_pages_to_show>, 'post_parent' => <ID of the parent page>, 'post_type' => 'page'));

while (have_posts()) { the_post();
    /* Do whatever you want to do for every page... */
}

wp_reset_query();  // Restore global post data

另外:query_posts还可以使用许多其他参数。此处列出了一些(但不幸的不是全部):http : //codex.wordpress.org/Template_Tags/query_posts至少没有列出post_parent更重要post_type的信息。我仔细研究了这些资源./wp-include/query.php以了解这些信息。

考虑到这个问题的年代,我想为任何偶然发现它的人提供一个更新的答案。

我建议避免使用query_posts。这是我更喜欢的替代方法:

$child_pages = new WP_Query( array(
    'post_type'      => 'page', // set the post type to page
    'posts_per_page' => 10, // number of posts (pages) to show
    'post_parent'    => <ID of the parent page>, // enter the post ID of the parent page
    'no_found_rows'  => true, // no pagination necessary so improve efficiency of loop
) );

if ( $child_pages->have_posts() ) : while ( $child_pages->have_posts() ) : $child_pages->the_post();
    // Do whatever you want to do for every page. the_title(), the_permalink(), etc...
endwhile; endif;  

wp_reset_postdata();

另一种选择是使用pre_get_posts过滤器,但这仅在这种情况下适用,如果您需要修改主循环。上面的示例用作辅助循环时效果更好。

进一步阅读:http : //codex.wordpress.org/Class_Reference/WP_Query

本文地址:http://php.askforanswer.com/duiyemianerbushitiezishiyongwordpress-loop.html
文章标签: ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!