So ändern Sie "Sie müssen angemeldet sein, um einen Kommentar zu schreiben."

8

Einige meiner Benutzer haben erwähnt, dass meine Website für sie verwirrend ist. Da dies der Fall ist, möchte ich tatsächlich Links zu Login / Register erstellen, damit meine nicht registrierten Besucher dies schnell tun können, wenn sie einen Kommentar hinterlassen möchten.

Im Moment heißt es nur "Sie müssen angemeldet sein, um einen Kommentar zu schreiben." ohne Link zum Login. Wo kann ich dies bearbeiten und in "Sie müssen sich registrieren oder anmelden, um einen Kommentar zu schreiben?" Ändern. mit Links zu ihnen?

Aidan Knight
quelle

Antworten:

9

Sie können versuchen, es mit dem comment_form_defaultsFilter zu ändern :

/**
 * 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;
});

wo wir die wp_registration_url()und wp_login_url()Kernfunktionen verwenden.

ps: Die Informationen zum comment_form_defaultsFilter scheinen im Codex zu fehlen.

Birgire
quelle
Danke für die Hilfe. Tut mir leid, dumm zu sein, aber wo soll ich das hinstellen, functions.php?
Aidan Knight
Wie wäre es mit diesem Teil des Codes wp_login_url (get_permalink ()));
Brad Dalton
Ja, das sollte auch funktionieren. Ich wollte nur nachahmen, wie es im Kern gemacht wird. @BradDalton
Birgire
Sicher, aber warum sollte apply_filters zurückgegeben werden, wenn die Standardausgabe für den Text in einem untergeordneten Thema geändert wird?
Brad Dalton
Ich denke, wenn der Benutzer diesen Filter verwendet, um die Permalinks zu ändern (wie das Hinzufügen zusätzlicher Abfragezeichenfolgen), wäre es konsistent, ihn auch hier anzuwenden?
Birgire