这是一个棘手的问题,但非常可行。看了Mark的Markdown on Save 插件做的正是你想要的事情,但对于帖子内容而不是评论,我开始想,将评论内容保存为降价是不好的,因为你必须为你显示的每个评论动态地将降价呈现为HTML,所以该插件背后的想法是,它将降价版本保存为postmeta数据,并且只在编辑屏幕上显示。
所以这正是你需要做的,我可以帮助你开始。
首先,您需要使用以下命令在注释元表中保存注释内容的降价版本update_comment_meta
把它挂在wp_insert_comment
将注释插入数据库后立即激发:
//on comment creation
add_action(\'wp_insert_comment\',\'save_markdown_wp_insert_comment\',10,2);
function save_markdown_wp_insert_comment($comment_ID,$commmentdata) {
if (isset($_GET[\'comment\'])){
$markdown = $_GET[\'comment\'];
}elseif (isset($_POST[\'comment\'])){
$markdown = $_POST[\'comment\'];
}
if (isset($markdown)){
update_comment_meta($comment_ID,\'_markdown\',$markdown);
}
}
然后,您需要使用在注释编辑屏幕上显示它
get_comment_meta
我们把它挂在
comment_edit_pre
在显示编辑注释屏幕之前激发的过滤器:
//on comment edit screen
add_filter(\'comment_edit_pre\',\'load_markdown_on_commet_edit\',10,1);
function load_markdown_on_commet_edit($content){
$markdown = get_comment_meta($comment_ID,\'_markdown\',true);
if (isset($markdown) && $markdown != \'\' && $markdown != false){
return $markdown;
}
return $content;
}
最后,我们需要再次使用
update_comment_meta
我们把它挂在
edit_comment
在数据库中更新/编辑注释后激发:
//after comment edit screen
add_action(\'edit_comment\',\'save_markdown_after_edit\',10,2);
function save_markdown_after_edit($comment_ID){
if (isset($_POST[\'content\'])){
update_comment_meta($comment_ID,\'_markdown\',$_POST[\'content\']);
}
}
现在我不确定这有多安全,也不确定这是否可行,但我觉得它很合适,我将把它作为一个社区维基,所以欢迎所有了解更多的人纠正我的错误。