回复表格中的评论作者姓名

时间:2012-06-05 作者:Arg Geo

我已经在我的博客中启用了评论回复。假设Nick写了一条评论。。。当我要回复时,我想在回复的表单标题中显示一条消息“回复Nick”。有人知道怎么做吗?谢谢

2 个回复
SO网友:tamilsweet

WordPress功能comment_form_title 仅适用于禁用Javascript的用户或没有注释回复的页面。已加载js JavaScript。

WordPress可能无法修复此限制,因为之前已经打开了两张票证,并且未经修复就关闭了这两张票证。http://core.trac.wordpress.org/ticket/10084http://core.trac.wordpress.org/ticket/8639

然而,我通过使用一些脏补丁,成功地将其用于默认的twentyeleven主题。下面是您可以用作插件的代码。

<?php
/**
 * Plugin Name: Comment Form Title Fix
 * Plugin URI: 
 * Description: WordPress provides comment_form_title function to displays text based on comment reply status. This only affects users with Javascript disabled or pages without the comment-reply.js JavaScript loaded. This plugin provides dirty fix to remove this limitation.
 * Author: tamilsweet
 * Author URI: http://tamilg.in/
 * Version: 0.1
 * Limitation: Tested only with default comment form.
 */

define(\'CFTF_REPLY_TEXT\', \'Leave a Reply\');
define(\'CFTF_REPLY_TO_TEXT\', \'Leave a Reply to %s\');

// Enable jquery
add_action(\'init\', \'my_script\');
function my_script() {
    wp_enqueue_script(\'jquery\');
}

add_filter(\'comment_reply_link\', \'cftf_reply_link\');
function cftf_reply_link($link) {
    global $comment;

    $author = get_comment_author();
    $replytext = sprintf( CFTF_REPLY_TO_TEXT, $author );

    $link = str_replace("onclick=\'return", "onclick=\'cftf_update_title(\\"${replytext}\\"); return", $link);
    return $link;
}

add_action(\'wp_footer\', \'cftf_javascript\');
function cftf_javascript() {
?>
<script type="text/javascript">
function cftf_update_title(title) {
    var temp = jQuery("#reply-title :first").html();
    jQuery("#reply-title").html(title + \'<small>\' +  temp + \'</small>\');
}

jQuery("#cancel-comment-reply-link").live(\'click\', function() {
    var title = "<?php echo CFTF_REPLY_TEXT;?>";
    var temp = jQuery("#reply-title :first").html();
    jQuery("#reply-title").html(title + \'<small>\' +  temp + \'</small>\');
});
</script>
<?php
}
请记住,它可能不适用于所有主题。

Update:使其与@Arg Geo使用的自定义主题配合使用。替换函数cftf\\u javascript(),如下所示

function cftf_javascript() {
?>
<script type="text/javascript">
function cftf_update_title(title) {
    jQuery("#reply-title").html(title);
}

jQuery("#cancel-comment-reply-link").live(\'click\', function() {
    var title = "<?php echo CFTF_REPLY_TEXT;?>";
    jQuery("#reply-title").html(title);
});
</script>
<?php
}

SO网友:Rod

从jQuery 1.7开始.live() 方法已弃用。使用.on() 附加事件处理程序。

在tamilsweet提供的代码中,请替换:

jQuery("#cancel-comment-reply-link").live(\'click\', function() {

with:

jQuery("#respond").on(\'click\', \'#cancel-comment-reply-link\', function() {

结束

相关推荐

Q&A lite plugin comments

我正在尝试Q&A lite plugin from WPMU. 除了一件事,它看起来很棒。看起来用户只能问和答问题,不能对他们发表评论。这有效地缩短了两个用户之间的对话。一个问题,一个答案,就是这样,当然除了其他用户的答案,但不可能有这样的对话,我对它的有效性感到困惑。有人能告诉我我是不是用错了吗?我想不会,但如果我是,我想知道,否则谁能推荐类似的东西。