用户编辑页面时可以在页面属性中选择一个模版,本文介绍在用户保存页面后如何获取被选择的模版的名称。
每个页面使用的模版以post meta形式存储,meta key为_wp_page_template,所以在后台编辑page界面获取当前页面模版名称的方法如下
$template_file = get_post_meta($post_id,'_wp_page_template',TRUE);
$post_id代表当前页面的ID,如何获取要视情况而定。
实例
当用户选择模版page-category.php时,显示category box。
add_action('init', 'cp_mcp_init'); function cp_mcp_init() { $post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID'] ; if( !empty($post_id) ) { $template_file = get_post_meta($post_id,'_wp_page_template',TRUE); if ( $template_file == 'page-category.php' && function_exists('register_taxonomy_for_object_type')) { register_taxonomy_for_object_type('category', 'page'); } } }
因为该段代码在init钩子的位置执行,此时$post全局变量还未定义,因此只能通过get方法获取url中的post_ID判断当前页面的ID
如果$post全局变量已经定义,则获取页面ID方法如下
global $post; $post_id = $post->ID;