J'ai activé les réponses aux commentaires sur mon blog. Disons qu'il y a un commentaire que Nick a écrit ... quand je vais répondre, je veux afficher un message "Répondre à Nick" dans l'en-tête de formulaire de la réponse. Quelqu'un sait comment? Merci!
La fonction WordPress comment_form_title ne fonctionne que pour les utilisateurs avec Javascript désactivé ou les pages sans JavaScript comment-reply.js.
WordPress peut ne pas résoudre cette limitation du tout. Deux tickets ont déjà été ouverts et fermés sans solution. http://core.trac.wordpress.org/ticket/10084 http://core.trac.wordpress.org/ticket/8639
Cependant, j'ai réussi à le faire fonctionner pour le thème par défaut vingteleven en utilisant certaines corrections. Voici le code que vous pouvez utiliser comme plugin.
<?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
}
Rappelez-vous que cela peut ne pas fonctionner avec tous les thèmes.
Mise à jour: Pour que cela fonctionne avec le thème personnalisé utilisé par @Arg Geo. Remplacez la fonction cftf_javascript () comme ci-dessous
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
}
Depuis jQuery 1.7, la méthode .live()
est obsolète. Utilisez .on()
pour attacher des gestionnaires d’événements.
Dans le code fourni par tamilsweet, remplacez:
jQuery("#cancel-comment-reply-link").live('click', function() {
avec:
jQuery("#respond").on('click', '#cancel-comment-reply-link', function() {