显示自定义发布类型父页面的子页面

时间:2017-07-29 作者:Benjamin Doyle

我试图显示自定义的子页面post_type 页我发现了一个适用于标准WordPress“页面”的短代码post_type, 但不适用于自定义帖子类型。

以下是我在覆盖函数文件中放置的短代码:

add_shortcode( \'my_childpages\', \'my_list_child_pages\' );  

function my_list_child_pages() { 
global $post;
if ( is_page() && $post->post_parent )
    $childpages = wp_list_pages( \'sort_column=menu_order&title_li=&child_of=\' . $post->post_parent . \'&echo=0\' );
else
    $childpages = wp_list_pages( \'sort_column=menu_order&title_li=&child_of=\' . $post->ID . \'&echo=0\' );
if ( $childpages ) {
    $string = \'<ul>\' . $childpages . \'</ul>\';
}
return $string; 
}
如果我放置[my_childpages] “页面”上的短代码post_type 对于子页面,它成功地在链接列表中显示所有子页面。但如果我添加到自定义post_type (例如,“随笔”),它没有。

我在其他地方看到,可能代码不承认自定义$post_type, 并需要添加一个参数,但我不确定如何编辑上述代码以满足要求。我尝试了几次编辑,但都失败了。

如有任何建议,我们将不胜感激!

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

这个page 它本身是一种自定义的帖子类型,打开编辑页面屏幕时可以注意到这一点。您的URL如下所示:

www.example.com/wp-admin/edit.php?post_type=page
这意味着你在page 岗位类型。

关于您的代码,条件的第一个条件决定您是否在page 是否为post类型。在else 节中,您还可以设置post_type 作为参数:

$childpages = wp_list_pages( \'post_type=essay&sort_column=menu_order&title_li=&child_of=\' . $post->ID . \'&echo=0\' );
但是,在注册自定义分类法时,必须将层次设置为true:

\'hierarchical\'=> true,
看看this question, 其中有一些关于这方面的宝贵信息。中的相关页面code reference 也可能有用。

结束

相关推荐

Using shortcode in Post title

我有很多帖子,其中我有本月的帖子标题。当月底,手动更改所有帖子有点烦人。因此,我创建了一个短代码来显示当前月份。我使用了add_filter( \'the_title\', \'do_shortcode\' );执行标题中的短代码。一切正常。问题是,在元标题中,显示的是原始短代码,而不是输出。有什么建议可以帮我解决吗。提前谢谢。