如何获取所有最近发布的子页的列表?

时间:2015-05-01 作者:Kiko Lolo

你能帮助我如何显示列表吗<li> 新发布的子页面的。我一直在关注google如何使用wp_list_pages(); 但在那里找不到。我想在“最新培训”或类似的内容中展示它。

3 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

这将为您获取所有子页面的帖子数据:

$args = array(
    \'post_type\'         => \'page\',
    \'post_parent__not_in\'       => array(0),                               
    \'no_found_rows\'     => true,
);
$child = new WP_Query($args);
var_dump(wp_list_pluck($child->posts,\'post_title\')); // debugging only
然后将ID传递给wp_list_pages():

$args = array(
    \'post_type\'         => \'page\',
    \'post_parent__not_in\'       => array(0),                               
    \'no_found_rows\'     => true,
);
$child = new WP_Query($args);
$ids = wp_list_pluck($child->posts,\'ID\');
$ids = implode($ids,\',\');
$args = array(
    \'include\'      => $ids,
);
wp_list_pages($args);
或者,甚至更干净:

$args = array(
    \'post_type\'         => \'page\',
    \'post_parent__not_in\'       => array(0),                               
    \'no_found_rows\'     => true,
    \'fields\' => \'ids\'
);
$child = new WP_Query($args);
$args = array(
    \'include\'      => $child->posts,
);
wp_list_pages($args);
请注意,对该代码没有错误检查。

我会看看我是否能找到一种干净的方法来使用过滤器。稍后再查看。

SO网友:Nicolai Grossherr

如果你真的只是想得到一份wp_list_pages(), 那么你应该使用child_of 参数来执行此操作。但我假设你真的想把这个列表限制在某个特定的时间范围内wp_list_pages(), 其中使用get_pages(), 装备不太好。

所以我想你应该用get_posts() - 甚至WP_Query 直接-,您可以使用»WP_Query: Date Parameters«这里的缺点-作为一个通用函数wp_list_posts() 不存在-就是您必须自己编写代码来生成列表@s\\u ha\\u dum\'sanswer 显示了如何将这两者结合起来,使缺点几乎消失-只需要多一点代码。

SO网友:m4n0

尝试使用以下代码生成子页面。

<?php
// Set up the objects needed
$my_wp_query = new WP_Query();

// Query all pages
$all_wp_pages = $my_wp_query->query(array(\'post_type\' => \'page\'));

$page_ids = get_all_page_ids();

$page_children = get_page_children( $page_ids, $all_wp_pages );

echo \'<li>\' . print_r( $page_children, true ) . \'</li>\';
?>

结束

相关推荐