加密/解密帖子标题和详细信息

时间:2017-06-23 作者:user520300

如何在将文章标题及其详细信息保存到数据库之前,利用Wordpress对其进行加密?

那么,在管理面板中再次显示帖子标题和详细信息之前,我如何点击Wordpress对其进行解密(以便再次读取)

1 个回复
SO网友:dbeja

要在保存帖子内容之前更改帖子内容,可以使用wp_insert_post_data 滤器

在这个例子中,我只是用一种简单/虚拟的方式来表示加密,我只是用相应的ascii码替换每个字符。应该用您的加密方法替换它。

add_filter( \'wp_insert_post_data\' , \'encrypt_post\' , 99, 1 );
function encrypt_post( $data ) {
    // check if it\'s a post
    if(\'post\' !== $data[\'post_type\']) {
            return $data;
    }

    // this is just for demonstration purposes (a simple char to ascii code conversion), it should be replaced by your encryption method
    $title = str_split( $data[\'post_title\'] );
    $title = array_map( function($n) { return ord( $n ); }, $title );
    $title = implode( ".", $title );
    $data[\'post_title\'] =  $title;

    return $data;
}
然后,要解密编辑页面上的帖子标题,可以使用title\\u edit\\u pre filter:

function decrypt_post_title( $title, $post_id ) {
    if( \'post\' !== get_post_type( $post_id ) ) {
        return $title;
    }

    // same dummy ascii code to char conversion
    $title = explode( \'.\', $title );
    $title = array_map( function($n) { return chr( $n ); }, $title );
    $title = implode( "", $title );

    return $title;
}
add_filter( \'title_edit_pre\', \'decrypt_post_title\', 99, 2 );
要解密其他post字段,需要检查其他动态*_edit_pre 过滤器。

结束

相关推荐

两个日期之间的PRE_GET_POSTS查询(日期存储在自定义发布元中)

我有一个自定义的帖子类型,其中有一个自定义的日期字段。在帖子列表上(edit.php)I want to be able to filter posts between 2 dates based on the custom post meta date (非发布日期),此字段为_exm_date.我读过以下文章:https://rudrastyh.com/wordpress/date-range-filter.html这对于实际的发布日期非常有用,但对于它使用的自定义字段则不适用date_query.因