get_pages() & "child_of"

时间:2017-06-22 作者:Kenny

我正在Youtube上观看关于get\\u pages()和“child\\u of”的wordpress教程:

(从17\'28“到18\'35”)https://www.youtube.com/watch?v=GHTZn3atTcM

要检查页面是否有子级(ren),他建议使用带有“child\\u of”的get\\u pages()进行检查。因此,我创建了以下类别结构:

About Us

- Sub about us // child of about us

Contact Us // with no child(ren)
每个类别有一个职位。

然后我在单曲中加入以下内容。要检查的php:

$array = get_pages(\'child_of=\' . $post->ID);

echo count($array);
假设“关于我们”应该返回1,因为它有一个孩子。

而对于“Sub about us”和“Contact us”,应返回0,因为两者都没有子级。

但最终都返回0,我能知道我做错了什么吗?

我是否误解了如何使用get\\u pages()&;“的子对象”?

非常感谢!

1 个回复
最合适的回答,由SO网友:Sudhir Tiwari 整理而成

您在错误的位置使用它,您可以在页面中使用相同的功能。php,如果您想在单个中使用它。php然后必须将静态pageId作为参数传递。

现在你通过了$post->ID 它将返回当前文章的帖子id,并且文章与页面没有任何关系。

 $defaults = array(
    \'depth\'        => 0,
    \'show_date\'    => \'\',
    \'date_format\'  => get_option( \'date_format\' ),
    \'child_of\'     => 0,
    \'exclude\'      => \'\',
    \'title_li\'     => __( \'Pages\' ),
    \'echo\'         => 1,
    \'authors\'      => \'\',
    \'sort_column\'  => \'menu_order, post_title\',
    \'link_before\'  => \'\',
    \'link_after\'   => \'\',
    \'item_spacing\' => \'preserve\',
    \'walker\'       => \'\',
);

$r = wp_parse_args( $args, $defaults );
以上代码将返回所有页面,现在如果您想获取关于我们的子页面,请在中传递关于我们的PageID\'child_of\' => 0 参数这将是我们唯一的孩子。

另外,您可以使用以下函数获取当前页面的子页面。

$mypages = get_pages( array( \'child_of\' => $post->ID, \'sort_column\' => \'post_date\', \'sort_order\' => \'desc\' ) );
在这里,您需要在第页中编写此代码。php或任何页面模板,然后它将返回当前页面的子页面。

如果发现问题,请告诉我。

结束

相关推荐

Customizing wp_link_pages

我想使用wp\\U link\\U页面创建一个页面,如下所示Previous 第3页,共20页Next如何做到这一点?顺便说一句,我正在使用此功能https://codex.wordpress.org/Function_Reference/wp_link_pages