2012-02-23 79 views
4

假设我有一个名为“About”的WordPress安装。如果我去http://example.com/about,我从WordPress的模板层次结构页面知道我正在查看主题文件page.php如何获取用于呈现当前页面的文件的名称?

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

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

回答

2

它可以在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

0

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

我不确定你使用了什么编辑器,但是最常用的文本编辑器允许你在整个文件夹中进行查找替换。

我会建议做一个临时替换包括和require的添加一个PHP_SELF的回声。只要确保在回声之前添加评论或其他内容,以便在完成后您可以轻松替换它们。

0

我只是手动输入模板,即ARCHIVE.PHP,CATEGORY-1.PHP,当我建立它。只要记住要在网站上线时删除它。 简单而容易,如果不是那么优雅。

+0

所以是我,我想知道是否有一种方法,以编程方式输出它的地方,所以我可以找到页面,而无需去打开每个文件并键入它。 – Jason 2012-10-18 19:22:51