Comment changer "Vous devez être connecté pour poster un commentaire."

8

Certains de mes utilisateurs ont mentionné que mon site était déroutant pour eux. Comme c'est le cas, je voudrais réellement faire des liens vers Login / Register pour que mes visiteurs non enregistrés le fassent rapidement s'ils souhaitent laisser un commentaire.

En ce moment, il dit simplement "Vous devez être connecté pour poster un commentaire." sans lien vers la connexion. Où puis-je le modifier et le remplacer par «Vous devez vous enregistrer ou vous connecter pour publier un commentaire». avec des liens vers eux?

Aidan Knight
la source

Réponses:

9

Vous pouvez essayer de le modifier avec le comment_form_defaultsfiltre:

/**
 * Modify the "must_log_in" string of the comment form.
 *
 * @see http://wordpress.stackexchange.com/a/170492/26350
 */
add_filter( 'comment_form_defaults', function( $fields ) {
    $fields['must_log_in'] = sprintf( 
        __( '<p class="must-log-in">
                 You must <a href="%s">Register</a> or 
                 <a href="%s">Login</a> to post a comment.</p>' 
        ),
        wp_registration_url(),
        wp_login_url( apply_filters( 'the_permalink', get_permalink() ) )   
    );
    return $fields;
});

où nous utilisons les fonctions de base wp_registration_url()et wp_login_url().

ps: les informations sur le comment_form_defaultsfiltre semblent manquer dans le Codex.

Birgire
la source
Merci pour l'aide. Désolé d'être stupide, mais où dois-je mettre cela, functions.php?
Aidan Knight
Que diriez-vous de cette partie du code wp_login_url (get_permalink ()));
Brad Dalton
oui, cela devrait aussi fonctionner. Je voulais juste imiter comment cela se fait dans le noyau. @BradDalton
birgire
Bien sûr, mais pourquoi renvoyer apply_filters lors de la modification de la sortie par défaut du texte dans un thème enfant?
Brad Dalton
Je suppose que si l'utilisateur utilisait ce filtre pour modifier les permaliens (comme l'ajout de chaînes de requête supplémentaires), il serait cohérent de l'appliquer ici également?
birgire