WordPress如何获取页面对应的page模板id或者名称?

六月 4, 2014 by · Leave a Comment 

wordpress支持在主题根目录下设置自定义page页面模板,也可以放置在page-templates目录下,wordpress后台会自动扫描里面的page模板文件,然后显示在页面编辑窗口右侧的“页面属性”->“模板”下拉框中。

theme目录外的自定义主题

如果你是自定义主题,不走wordpress的theme路径,即:
define('WP_USE_THEMES', false);
这样wordpress依然会读取后台“外观”->“主题”中选定的theme下的page模板文件。

页面模板php文件的匹配

当你发布一个页面时,系统自动为该page添加了一个post_meta: _wp_page_template,记录了该page对应的模板名称。
如果是默认模板,即主题根目录下的page.php,那么_wp_page_template的值为“default”(注意没有.php)。
如果主题根目录下的其他页面模板,那么那么_wp_page_template的值为文件名,形如“page-intro.php”。
如果选择的是子目录下的页面模板,那么_wp_page_template的值包含路径,形如:“page-templates/page-intro.php”。

如何获取_wp_page_template的值?

get_post_meta对于页面page同样有效,只是ID的获取方法不同。
下面的代码可令你一目了然:
echo get_post_meta($wp_query->get_queried_object_id(),'_wp_page_template',true);

——本文最后由傅老师于2014-06-04编辑过

评论


六 × 五 =