如何让WordPress以降价格式保存评论?

时间:2011-03-13 作者:kristi

我喜欢markdown,我有Wordpressmarkdown-for-wordpress-and-bbpress 分析我的帖子和评论中的降价。

然而,我注意到Wordpress保存了以html格式呈现的注释。这使得返回并编辑评论更加困难。如何让wordpress以降价格式保存评论?

我找不到它的插件。也许有一个简单的php黑客?

(交叉过账自stackoverflow 我希望没问题)

2 个回复
最合适的回答,由SO网友:Bainternet 整理而成

这是一个棘手的问题,但非常可行。看了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\']);
    }
}
现在我不确定这有多安全,也不确定这是否可行,但我觉得它很合适,我将把它作为一个社区维基,所以欢迎所有了解更多的人纠正我的错误。

SO网友:Foliovision

Robin Adrianse的Parsedown for WordPress 对帖子和评论都执行您想要的操作。对于复杂的帖子来说,这有点棘手,因为所有帖子都被解析为降价(HTML仍然被解析为HTML是降价规范的一部分),但对于评论来说,它工作得很好。透明地支持标记或HTML注释。没有永久转换的内容。您输入的任何内容都会在显示时转换为HTML。

我建议切换到纯文本编辑器,以避免TinyMCE编辑器的任何交叉转换/解析问题,或者更具体地说,WordPress自己对文本的重新分析。如果使用缓存插件,我看不出有任何性能问题(2021年不会有)。

我指定RobinAdrianse的Parsedown版本,因为还有其他几个版本做得太过分了,将HTML永久性地转换为Markdown。WordPress的Parsedown在WordPress 5.8和Classic Editor中运行良好,因此忽略任何版本警告。RobinAdrianse不再使用WordPress,因此不必担心不断更改的版本号(对于大多数自愿提供开放源代码的开发人员来说,这真是一件麻烦事)。

结束

相关推荐

Switching Code plugins

我目前正在使用“Wordpress代码片段”为插入到帖子中的代码添加功能。这个插件的工作方式是将代码添加到设置中的插件库中,然后执行类似于[代码:1]的操作(我记不清确切的语法了)我真的不太喜欢它的风格,所以我希望使用谷歌的美化。停用此插件会有什么影响?我会丢失所有的代码片段吗?我是否需要浏览每一篇文章并编辑所有的代码片段(即[代码:1])?