假设我有一个WordPress安装,其页面名为“About”。如果我转到http://example.com/about
,我从WordPress的模板层次结构页面知道我正在查看主题文件page.php
。
我想知道是否有办法在页面某处显示该事实(用于主题调试)?就像我将调用什么函数(或代码)来显示当前用于呈现我正在查看的页面的PHP页面。
我可以使用$_SERVER['PHP_SELF']
做一些事情,但我正在寻找一种不需要编辑每个PHP文件的方法。就像在调用页面时一样吐出它正在使用的文件列表。
答案 0 :(得分:4)
它可以打印在Html源代码中,如下所示:
add_action( 'wp_head', 'so_9405896_show_template', 999 );
function so_9405896_show_template() {
global $template;
echo '
<!--
TEMPLATE = ' . basename($template) .'
-->
';
}
或者为了更容易可视化,直接在内容中使用:
add_filter( 'the_content', 'so_9405896_the_content_filter', 20, 1 );
function so_9405896_the_content_filter( $content )
{
if( is_admin() || !current_user_can( 'administrator' ) )
return $content;
global $template;
$the_templ = '<strong style="background-color: #CCC;padding:10px">TEMPLATE = '
. basename( $template ) . '</strong><br />';
$content = sprintf( $the_templ . '%s', $content );
return $content;
}
结果是:
答案 1 :(得分:0)
据我所见,没有内置选项来启用此类日志记录,仅用于错误。
我不确定您使用的编辑器,但大多数常见的文本编辑器允许您在整个文件夹中进行查找替换。
我建议对includes进行临时替换,并要求添加PHP_SELF的echo。只需确保在回显之前添加注释或其他内容,以便在完成后可以轻松地替换它们。
答案 2 :(得分:0)
快速搜索WordPress插件存储库会显示a WordPress Debug Bar Template Trace。
答案 3 :(得分:0)
我只是手动将其键入模板,即ARCHIVE.PHP,CATEGORY-1.PHP,当我构建它时。只需记住在网站上线后删除它。 如果不是那么优雅,简单易行。