it-swarm.com.de

Wie ändere ich Kommentator-Links zu/user/user_id?

Ich möchte die Kommentator-Links wie in diesem Screenshot gezeigt ändern:

screenshot

In meinem Test-Plugin bei GitHub habe ich zuerst folgenden Code ausprobiert:

define('PROFILE', '<a href="/user/%s" rel="external nofollow" class="url">%s</a>');

function get_comment_author_link($cid) {
   $uid = get_comment_author($cid);
   return sprintf(PROFILE, $uid->ID, $uid->name);
}

add_action('get_comment_author_link',  'get_comment_author_link');

Aber dann habe ich durch das Studium der Datei wp-includes/comment-template.php festgestellt, dass das Argument für get_comment_author_link keine Kommentar-ID ist, sondern eine Zeichenfolge, die <a href="...">...</a> enthält, und daher kann ich diesen Hook nicht für meinen Zweck verwenden (weil die Benutzer-ID in nicht gefunden werden kann der Haken).

Bitte teilen Sie mir einen geeigneten Haken oder Weg mit, um die Kommentator-Links zu ändern.

1

Sie können den Hook get_comment_author_link verwenden, der Teil der Vorlage get_comment_author_link() ist tag, wie deine frage schon andeutet. Dann müssen Sie nur noch den entsprechenden user_id abrufen, was über den $comment global erfolgen kann, und den gewünschten Link entsprechend aufbauen.

Beispielhafte Verwendung wie unten gezeigt:

add_filter( 'get_comment_author_link', 'wpse144835_custom_comment_author_link' );
function wpse144835_custom_comment_author_link( $link ) {
    global $comment;
    $comment_user_id = $comment->user_id;
    // code to create the new link
    return $new_link;
}



Bearbeiten:

Aufgrund der Beantwortung Ihrer Fragen wurde der entsprechende Kommentar leider gelöscht. Dies ist jetzt eine Art Informations-Shortlist. Es ist viel drin, viel zu viel, um sie wirklich zu beantworten, aber ich gebe Ihnen einige zusätzliche Informationen:

2
Nicolai

Könnten Sie versuchen:

 $id = get_comment( get_comment_ID() )->user_id;

Ich habe diese Lösung gerade beim Googeln gefunden, aber ich habe keine Umgebung, um sie zu testen.

0

Die Ausgabe dieser Funktion ist ein A-Tag, das einen Link zum Autorenprofil enthält. Die Eingabe ist definitiv eine ID.

Wenn Sie die Ausgabe dieser Funktion ändern möchten, benötigen Sie einen Filter und müssen das a-Tag (oder eine ähnliche Methode, die auf den String wirkt) durch str_replace ersetzen. (siehe , wo get_comment_author_link () geändert werden soll? )

Ich denke, die wichtigere Frage ist: Was genau wollen Sie hier erreichen?

Theoretisch könnte der Kommentator-Link in jedem Theme/Plugin anders implementiert werden. Dies kann mit get_comment_author_url () oder direkt mit get_comment () aus dem Kommentarobjekt abgerufen werden, oder auf jede andere Art und Weise.

Informationen zum Ändern der Ausgabe von get_comment_author_link () finden Sie im obigen Beispiel.

0
Pim