TMD 到底是谁调用了这个函数之PHP Debug

在 Wordpress 中使用自定义固定链接,如果将文章的自定义路径名命名为四位数数字,wordpress要么会自动增加一个 -2 到路径中,要么会在前端访问的时候,提示404错误。这个是为了防止在使用日期归档的时候,和年份搞混。所以wordpress中有申明不支持自定义链接的时候使用4位数字。

可是我正好遇到一个网站,从另外一个平台迁移到wordpress中来。原来的路径定义刚好是纯数字。难免有4位数字。而万能的 Wordpress 插件,也无法解决这个问题。 比如 Allow Numeric Slugs 插件,只在 Wordpress 4.4 版本中测试可用。但现在是两年后的 4.9.1 时代了。 早就不能用了。

无奈只得自己动手。结果大站两个通宵,始终无法锁定是问题出现在哪里。终于在使用了无数断点后,让我锁定在一行代码上。结果就这么一行代码,搞了2个通宵了,始终无法找到调用它的位置。

正当我绝望之际,突发奇想,PHP是否支持能够查看是谁调用了这个函数的函数?还真有 debug_backtrace() ,太神奇了。
使用方法如下

<?php

function epic( $a, $b )
{
    fail( $a . ' ' . $b );
}

function fail( $string )
{
    $backtrace = debug_backtrace();

    print_r( $backtrace );
}

epic( 'Hello', 'World' );

相关文章

发表新评论