获取生成页面所包含的PHP文件的列表

时间:2020-03-23 作者:Revious

一些商业主题已经变得一团糟:标题可能是由主题文件夹中的文件创建的,也可能是由子主题创建的,也可能是由遗留插件中的遗留文件夹创建的。

在这种情况下,我如何才能找到真正执行的代码?

1 个回复
SO网友:butlerblog

由于上述复杂性,这是一个相当普遍的问题,没有具体的答案。但这里有一些想法是基于我如何浏览别人的代码。

Forward/Back-tracing

我通过代码做了很多前向跟踪和后向跟踪。如果您有一个IDE(或类似记事本++),您可以在整个目录中进行“全部搜索”,以找到有关您正在查找的内容的“线索”。

例如,如果您试图找到某个内容的来源,请首先查看您可以在搜索中定位的特定输出-一些您可以键入的文本或HTML。一旦找到它的生成位置,就可以追溯生成的函数并查找各种包含。

Breakpoints and debug code

有时,如果您确实不确定,可能需要创建一个断点或一些调试输出,以查看您是否在正确的位置,执行方面是否正确。

如果我不确定自己是否在正确的位置,我可能会顺便来看看这样的东西:

echo \'You are here\'; exit();
如果是生产站点,这可能不合适,但您可以执行以下相关操作:

echo \'<!-- you are here... -->\';
这将在生成的输出中为您提供HTML注释。

或者,使用日志文件:

error_log( \'this point was hit.\' );
如果要进行日志记录,请确保在wp-config.php 文件:

define( \'WP_DEBUG\', true );
define( \'WP_DEBUG_LOG\', true );

PHP

PHP有一个函数get_included_files() 将显示所有包含的文件。根据你的主题是如何构建的,这可能有效,也可能无效,但可能会有所帮助,因此我将其作为一个可能的建议:

$included_files = get_included_files();

foreach ($included_files as $filename) {
    echo "$filename\\n";
}
正如我在一开始所说的,这并不是一个具体的“这样做就能保证解决你的问题”的答案。只是一些建议和想法,可以帮助你得到你需要的东西。希望有帮助。

相关推荐

Why debug.log doesn't work?

我使用了正确的方法设置Wordpress调试:1)设置wp-config.php:define(\'WP_DEBUG\', true); define(\'WP_DEBUG_LOG\', true ); define(\'WP_DEBUG_DISPLAY\', false ); @ini_set( \'display_errors\', 0 ); 2.)apache 是的所有者wp-content 文件夹3.)apache 有适当的SElinux 权利:drwxrwxr-