配合使用:
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>\';
写于:
How do you find out which template page is serving the current page?
如果
admin-bar stuff
路径显示在顶部,或任何其他文件,请更改文件名
template-loader.php
在这一行代码中,输入:无论您需要从哪个filname中断。
如果你在管理栏中需要这个,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
先加载舒尔。关键是在正确的时刻渲染这条线。
它不会返回“当前”模板文件,而是返回当前页面加载使用的所有当前模板文件。Maybe "cut out" with some logic from that idea.
这个get_included_files()
“last”键是最后注册的包含文件,可能是边栏小部件在页脚中使用的最后一个模板文件/部分。很可能,cos多个包含的文件不会在get\\u included\\u files()中重新注册/填充。
否则,必须明确意图才能解决这个问题。There is no way for a included file to report itself as included, until it has been included. 那么使用这个场景可能已经太晚了。
大多数“时间”你会喜欢:
$template = get_current_loaded_template();
if($template == \'single-product.php\') add_filter(\'the_title\' ....
if($template == \'format-gallery.php\') add_action(\'post_thumbnail\' ....
But thats not possible 如果模板加载在Wordpress核心方法之外
get_template_part
. 重新设计您的需求!大概
loop_start()
,
in_the_loop()
和
add_action(\'the_post\')
有您想要的解决方案,根据循环中每个条目要加载的模板来更改数据。