Here you go:
包含的HTML列表
all 当前登录页正在使用的模板文件,
including all template-parts from plugins, child theme and/ or parent theme combinations, 一行代码:
echo \'<ul><li>\'.implode(\'</li><li>\', str_replace(str_replace(\'\\\\\', \'/\', ABSPATH).\'wp-content/\', \'\', array_slice(str_replace(\'\\\\\', \'/\', get_included_files()), (array_search(str_replace(\'\\\\\', \'/\', ABSPATH).\'wp-includes/template-loader.php\', str_replace(\'\\\\\', \'/\', get_included_files())) + 1)))).\'</li></ul>\';
您可能需要
check 您的服务器不会在任何路径返回双斜杠。记住在所有模板文件实际使用后放置此文件,如在页脚中。php,但是
before admin bar renders.
如果admin-bar stuff
路径显示在顶部,或任何其他文件,请更改文件名template-loader.php
在这一行代码中,输入:无论您需要从哪个filname中断。通常:class-wp-admin-bar.php
如果你在管理栏中需要这个,use the right priotity (最早)to make shure no files are entered at the end 此列表的。例如:
add_action(\'admin_bar_menu\', \'my_adminbar_template_monitor\', -5);
优先级
-5
先加载舒尔。关键是打电话
get_included_files()
在适当的时候,否则需要一些数组弹出!
To break this up:
你
can not 收集所有包含的模板文件,无需PHP回溯。
Superglobals 在…内
template_include
wont collect them all. 另一种方法是在每个模板文件中“放置一个标记”,但如果您需要首先与这些文件进行交互,那么您会对时间和整个想法感到困惑。
1) 我们需要检查当前Wordpress请求使用的所有文件。而且他们很多!如果您在函数之前使用了300个文件,请不要感到惊讶。php已注册。
$included_files = str_replace(\'\\\\\', \'/\', get_included_files());
我们正在使用PHP本机get\\u included\\u files(),将反斜杠转换为正斜杠,以匹配大多数Wordpress返回路径。
2) 我们正在从模板加载器所在的位置切割该数组。php已注册。之后,填充的get\\u included\\u files()应该只填充模板文件。
/* The magic point, we need to find its position in the array */
$path = str_replace(\'\\\\\', \'/\', ABSPATH);
$key = $path.\'wp-includes/template-loader.php\';
$offset = array_search($key, $included_files);
/* Get rid of the magic point itself in the new created array */
$offset = ($offset + 1);
$output = array_slice($included_files, $offset);
3) 缩短结果,我们不需要路径,直到主题文件夹或插件文件夹,
as templates 正在使用中,
can be mixed 来自插件、主题或子主题文件夹。
$replacement = $path.\'wp-content/\';
$output = str_replace($replacement, \'\', $output);
4) 最后,将数组转换为一个漂亮的HTML列表
$output = \'<ul><li>\'.implode(\'</li><li>\', $output).\'</li></ul>\';
可能需要最后一次修改
in part3) -更换,如果dont 所需的want包括插件。他们可能会打电话class-files
延迟,并在模板输出处理期间“截取”。然而,我发现让它们可见是合理的,因为这样做的目的是跟踪加载的内容,即使在这个阶段渲染输出的不是“模板”。