我试图显示自定义的子页面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
, 并需要添加一个参数,但我不确定如何编辑上述代码以满足要求。我尝试了几次编辑,但都失败了。
如有任何建议,我们将不胜感激!
最合适的回答,由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 也可能有用。