如何检测WordPress中显示的当前模板?

时间:2012-12-06 05:33:14

标签: wordpress wordpress-theming

我正在开发Twenty Eleven主题的儿童主题。我需要在博客页面中进行一些自定义。我想在id = "primary"的位置添加一个类。如何发现哪个模板正在呈现页面?

1 个答案:

答案 0 :(得分:0)

在您的子主题functions.php中使用以下代码 如果您没有,请创建一个空的并仅使用php opening tag<?php)。

这将在the_content中打印当前显示的主题和模板。

查看主网站页面:子主题 index.php

  

child theme index.php

看到一篇帖子:儿童主题没有一个single.php

  

parent theme single.php

使用过滤器为内容添加调试:检查注释
add_filter( 'the_content', 'so_13737534_print_template', 20 );

function so_13737534_print_template( $content ) 
{
    // $template value equals to:
    // /public_html/wp-content/themes/theme-name/template-name.php
    global $template;

    // Return normal content if seeing the backend 
    // or the user is not administrator
    if( is_admin() || !current_user_can( 'delete_plugins' ) )
        return $content;

    // Split the value and build the output html
    $split_path = explode( '/', $template );
    $total = count( $split_path ) - 1;
    $theme_and_template = $split_path[$total-1] . '/' . $split_path[$total];
    $print = '<strong style="font-size:1em;background-color:#FFFDBC;padding:8px">Current = ' . $theme_and_template . '</strong>';

    // Add our output before the_content
    $content = $print . $content;
    return $content;
}

同样可以在<head>中打印为Html评论,使用:

add_action( 'wp_head', 'so_13737534_print_template_in_head', 999 );

function so_13737534_print_template_in_head() 
{
    global $template;
    echo '
    <!--

    TEMPLATE = ' . $template . '

    -->
    ';
}