如何获取用于呈现当前页面的文件的名称?

时间:2012-02-23 01:34:26

标签: wordpress wordpress-theming

假设我有一个WordPress安装,其页面名为“About”。如果我转到http://example.com/about,我从WordPress的模板层次结构页面知道我正在查看主题文件page.php

我想知道是否有办法在页面某处显示该事实(用于主题调试)?就像我将调用什么函数(或代码)来显示当前用于呈现我正在查看的页面的PHP页面。

我可以使用$_SERVER['PHP_SELF']做一些事情,但我正在寻找一种不需要编辑每个PHP文件的方法。就像在调用页面时一样吐出它正在使用的文件列表。

4 个答案:

答案 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;
}

结果是:

  

output template name to content

答案 1 :(得分:0)

据我所见,没有内置选项来启用此类日志记录,仅用于错误。

我不确定您使用的编辑器,但大多数常见的文本编辑器允许您在整个文件夹中进行查找替换。

我建议对includes进行临时替换,并要求添加PHP_SELF的echo。只需确保在回显之前添加注释或其他内容,以便在完成后可以轻松地替换它们。

答案 2 :(得分:0)

快速搜索WordPress插件存储库会显示a WordPress Debug Bar Template Trace

答案 3 :(得分:0)

我只是手动将其键入模板,即ARCHIVE.PHP,CATEGORY-1.PHP,当我构建它时。只需记住在网站上线后删除它。 如果不是那么优雅,简单易行。