我有一个名为“细木工”的页面,当打开一些新页面时,我将其父页面设置为细木工(在“页面属性”下),我想将Wordpress设置为自动使用文件页面细木工子页面。php用于显示它们,而无需手动选择模板。
我的解决方案基于此https://wordpress.stackexchange.com/a/218817/85304 ,
function load_usetemplate(){
global $post;
// get top level parent page
$parent = get_post(reset(array_reverse(get_post_ancestors($post->ID))));
if($parent->ID === pll__(8) && !is_page(pll_get_post(8)){
if ($child_template = locate_template( \'page-joinery-subpages.php\'))
return $child_template;
}
return $template;
}
add_filter( \'page_template\', \'load_usetemplate\' );
最合适的回答,由SO网友:cybmeta 整理而成
在获取顶级父页面之前,可以检查页面是否有父页面;你也忘了定义$template
.
此代码应适用于:
function load_usetemplate( $template ){
global $post;
if( $post->post_parent > 0 ) {
// get top level parent page
$parent = get_post( reset( array_reverse( get_post_ancestors( $post->ID ) ) ) );
if( $parent->ID === pll__(8) ){
if ( $child_template = locate_template( \'page-joinery-subpages.php\') )
return $child_template;
}
}
return $template;
}
add_filter( \'page_template\', \'load_usetemplate\' );