我试图将用户名与页面模板名称进行比较。我找到了以下代码:
get_post_meta( $post->ID, \'_wp_page_template\', true );
但这并不是我想要的。这将返回页面模板的文件名,即:
templates/page-products.php
我要查找的是此处页面模板中定义的实际模板名称:
/*
Template Name: products
*/
这可能吗?
最合适的回答,由SO网友:TheDeadMedic 整理而成
作为@Ben Cole的替代品,它的强度较低(尤其是如果您有多个页面模板),但没有那么棒,因为它不使用WP_Theme
对象;)
function wpse_184317_get_template_name( $page_id = null ) {
if ( ! $template = get_page_template_slug( $page_id ) )
return;
if ( ! $file = locate_template( $template ) )
return;
$data = get_file_data(
$file,
array(
\'Name\' => \'Template Name\',
)
);
return $data[\'Name\'];
}
在使用中:
echo wpse_184317_get_template_name(); // Template name for current page
echo wpse_184317_get_template_name( 14 ); // Template name for page ID 14