我可以在插入/更新内容之前编辑wp_post>post_content吗?

时间:2018-07-18 作者:Pavel

我需要对插入到wp\\u post>post\\u内容中的任何内容应用某种加密,因此我想知道是否有一种方法,要么修改核心(而不是),要么使用一些过滤器或挂钩和函数,在保存内容之前执行加密。

然后在post\\u内容实际使用之前,由前端或后端调用应用解密。

提前感谢任何对此事有建议的人!

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

好的,这是可能的,但这将有点棘手,我建议在部署此解决方案后进行大量测试。

免责声明:我使用base64_encodebase64_decode 作为密码/解密函数,但您当然可以将其更改为您喜欢的任何内容。

First part (post存储在DB中之前进行编码)非常简单:

function encrypt_post_content( $data, $postarr ) {
    $data[\'post_content\'] = base64_encode( $data[\'post_content\'] );
    return $data;
}
add_filter( \'wp_insert_post_data\', \'encrypt_post_content\', 10, 2 );
Second part 因为WordPress使用raw 如果使用此上下文,则不会将任何筛选器应用于post字段。。。

function decrypt_post_content( $content, $default_editor =false ) {
    return base64_decode( $content );
}
add_filter( \'the_editor_content\', \'decrypt_post_content\', 10, 2 );
add_filter( \'the_content\', \'decrypt_post_content\', 1, 1 );
附:有点遗憾的是,在从DB获得post\\u内容后,不可能轻易修改它…:(

结束

相关推荐

Js errors in wp-admin

我在wp admin中有很多js错误,例如,我在帖子或页面中看不到visual composer,我无法向小部件添加框,等等。我在所有wp admin页面中都遇到了这些错误。我更新了wp和所有插件,但什么都没更新。我怎样才能解决这个问题?ThanksAle公司