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
}