我自己的一些插件中有这个问题,这是一个很容易解决的问题。基本上,我将其标记为;懒惰的开发人员;问题这是一个添加过滤器但不考虑可选参数的问题。
步骤1-编辑插件文件
正在中断的代码从第639行开始(根据您的调试信息):
function pfund_handle_title( $atitle, $post_id ) {
global $post;
if ( ! pfund_is_pfund_post( ) || $post_id != $post->ID ){
return $atitle;
}
return pfund_get_value( $_REQUEST, \'pfund-camp-title\', $atitle );
}
我们需要做的是稍微更改函数以接受省略的
$post_id
:
function pfund_handle_title( $atitle, $post_id = null ) {
global $post;
if ( null == $post_id || ! pfund_is_pfund_post( ) || $post_id != $post->ID ){
return $atitle;
}
return pfund_get_value( $_REQUEST, \'pfund-camp-title\', $atitle );
}
如果否
$post_id
,我们只返回标题。这本质上是一种短路,以防止懒惰的开发人员没有提交所有正确的数据。
步骤2-提交补丁请将此代码发送回原始开发人员,并要求将其纳入未来版本。否则,当他们发布更新时,您将被迫一次又一次地重新修补代码。