找出哪个php文件在WordPress中生成了一行html代码的最佳方法

che*_*der 19 php debugging wordpress

使用Chrome,您可以右键单击 - 检查元素以查看该元素后面的html代码:

Chrome检查元素示例

我想知道如何找到哪个php文件生成了那个html.也许有一些工具将断点放入html中,以便php服务器在尝试再次生成它时会停止?

我在本地使用WordPress.我在Ubuntu 14.04LMS上.我正在使用Sublime Text 3和XDebug.


更新1

一个WordPress插件能够在每个文件中放入类似下面的内容,这将是一个很好的解决方案(我从初学者的角度来看):

echo '<!-- name_of_the_php_file.php -->';
Run Code Online (Sandbox Code Playgroud)

Rit*_*wal 18

使用这个插件" 什么文件 "来找出php文件.然后休息是在任何编辑器中通过CTRL + F找到一个函数或其他东西.

我想添加一个不完全用于此目的的插件,但它在WordPress开发人员中非常受欢迎,它很好地解决了这个问题.该插件是Query Monitor.


dev*_*wjk 5

在PHP页面中放置一个echo,根据是否设置了会话变量,在HTML注释中打印其名称.然后设置该会话变量并享受.

if(isset($_SESSION['printPageName']) && $_SESSION['printPageName']=='true')
{
   echo '<!-- ' . $_SERVER['PHP_SELF'] . ' -->';
}
Run Code Online (Sandbox Code Playgroud)

我说使用会话变量的原因是你可以创建一些机制,你可以偶尔看看这个用于调试目的,但用户通常不会遇到它.

  • 你总是可以放入`<?php echo"<! - ".__ FILE __." - >"; 所有模板文件上都有?>` (2认同)

Dav*_*vid 5

不幸的是,使用wordpress你需要做一些挖掘:

  1. 是页面/帖子/自定义帖子(即您可以在管理部分找到该页面并进行编辑)
  2. 如果是 - 查看分配的模板(帖子通常没有模板选择字段,除非添加自定义代码)并在主题中找到匹配的页面模板(page-whatever.php)(它可能不会被称为你在下拉字段,但在其注释中它将具有您看到的名称),或者如果您要查找的帖子是single.php,或者如果自定义帖子查找single-whatever.php.
  3. 以上是默认情况,将覆盖60%的情况.但是,如果您添加插件并添加新页面,则页面模板将位于插件中,真正的乐趣就开始了.
  4. 如果开发插件时考虑了用户mod,则应将其页面放在1个位置或功能集文件夹中.如果这些位置存在或在常规插件文件夹中,请查看这些位置中的上述文件.
  5. 如果仍然没有运气,请查看add_action('save_post', 'whatever');可能有代码说明return $template,这将在函数中也有post类型.寻找它的召唤之路
  6. 添加页面的另一种方法是通过url重写(搜索文件进行重写).它将包含文件某处的路径(有几种方法可以执行此操作,因此您可以识别它们).

如果您认为找到了正确的模板,请尝试使用回声查看它是否出现在屏幕上.如果是,你找到了模板,看看你有什么跟随包含/要求合适.php文件,你会发现你的HTML在某处作为html或PHP代码创建HTML.

希望你找到你想要的东西,但是真的没有规则,其他方法可以存在,包括htaccess重写指向php文件等,或者动态创建页面的函数文件

如果您创建了一个完整的插件,逻辑上存储文件并包含文件控制器或插件文件,这可能是一个值得一提的地方.将页面存储在页面文件夹中,以便于查找.

祝好运!

更新:过滤到模板文件的输出路径

add_filter( 'template_include', 'show_path', 99 );

function show_path( $template ) {

            if($template):
                echo $template;
            else:
                echo "template path not found";
            endif;

    return $template;
}
Run Code Online (Sandbox Code Playgroud)