我试图允许插件在为WP API呈现帖子之前修改帖子的呈现内容,或者至少将其保存为JSON响应上的一个单独属性。
例如,假设有一个插件可以从
以下是一些内容:foo
到
这里有一些内容:酒吧
它的设置是使用the\\u post过滤器对前端进行修改。但REST api不受影响。我尝试过使用rest\\u prepare\\u post过滤器,但(a)直接修改渲染内容显然是一种不好的做法,所以我将其作为附加属性?(b)很难处理--如果我尝试将$data->$data[\'content\'][\'rendered\']分配给变量,我会得到一条消息,即我正在尝试将WP Rest响应对象转换为字符串。然而,如果我将相同的变量输出到错误日志中,它就可以正常工作。
add_filter( \'rest_prepare_post\', array( __CLASS__, \'beforeFilterRest\' ), 0, 2 );
public static function beforeFilterRest( $data, $post ){
$old_rendered_content = $data->$data[\'content\'][\'rendered\'];
$data->$data[\'content\'][\'rendered\'] = preg_replace_callback(
"/\\s*<pre(?:lang=[\\"\']([\\w-]+)[\\"\']|line=[\\"\'](\\d*)[\\"\']|escaped=[\\"\'](true|false)?[\\"\']|highlight=[\\"\']((?:\\d+[,-])*\\d+)[\\"\']|src=[\\"\']([^\\"\']+)[\\"\']|\\s)+>(.*)<\\/pre>\\s*/siU",
array( __CLASS__, \'substituteToken\' ),
$old_rendered_content
);
return $data;
}
我在函数的第一行得到一个错误。我错过了什么?