Kommentar ohne Antwort mit Kommentaren mit Link zum ursprünglichen Kommentar

Ich werde erklären, was ich zu erreichen versuche.

Ich hätte gerne regelmäßige Kommentare ohne Thread (flat / classic) mit einem Antwortlink zu jedem Kommentar. Wenn jemand auf einen Kommentar antwortet, wird der Antwortkommentar am oberen (oder unteren) Ende des letzten Kommentars angezeigt, genau wie in den Standardkommentaren ohne Threads. Im Gegensatz zum Standardkommentar ohne Thread sollte die Antwort jedoch einen Link zu diesem Kommentar enthalten der ursprüngliche Kommentar / Autor.

Es gibt eine vorgeschlagene Lösung über das WordPress-Forum:

http://wordpress.org/support/topic/reply-to-link-for-chronicon-n-threaded-comments

Ich bekomme es einfach nicht zur Arbeit. Ich bin mir nicht sicher, in welchen Dateien das Poster die verschiedenen Code-Stücke platziert. Ich habe versucht, den Code zu verwenden und eine function an comment_post anzuhängen:

add_action('comment_post', 'print_reply_link', 10, 2); function print_reply_link( $comment_id, $approved ){ if( $approved ){ $comment = get_comment( $comment_id ); if ( $comment->comment_parent ) { $parent = get_comment( $comment->comment_parent ); $parent_link = esc_url( get_comment_link( $comment->comment_parent ) ); printf( ' in reply to %2$s', $parent_link, $parent->comment_author ); } } } 

Dies ergab eine leere Seite mit “als Antwort auf den Autorennamen “. Nach dem erneuten Laden des Posts erscheint ein Antwortkommentar korrekt, aber ohne einen Link zum ursprünglichen Kommentar

Meine Programmierkenntnisse sind wirklich sehr einfach und ich habe keine Ahnung, wie ich vorgehen soll. Wäre sehr dankbar für jede Hilfe.

Solutions Collecting From Web of "Kommentar ohne Antwort mit Kommentaren mit Link zum ursprünglichen Kommentar"

Dies ist meine Lösung und nicht die vorgeschlagene Lösung in den WordPress-Foren vorgeschlagen. Es erweist sich als ziemlich einfach, beinhaltet aber ein paar Schritte.

1) Gehe zu wp-admin-> Einstellungen-> Diskussion und deaktiviere Kommentare. Dies wird das Threading deaktivieren, was wir wollen, aber es wird auch die Fähigkeit für uns entfernen, auf einen bestimmten Kommentar zu antworten. Wir müssen das zurücklegen.

2) Fügen Sie das folgende Skript zur functions.php Ihres Themes oder zu einem Plugin hinzu.

 function load_script_for_fake_threading() { if (is_singular()) wp_enqueue_script('comment-reply'); } add_action('wp_enqueue_scripts','load_script_for_fake_threading'); 

3) Das Drucken der Kommentare erfolgt durch einen callback zu wp_list_comments . TwentyEleven verwendet in seiner functions.php die function twentyeleven_comment() . Wenn Ihr Theme keinen callback hat, müssen Sie einen erstellen. Standardmäßig wird der Inhalt der start_el-Methode der Walker_Comment-class in “wp-includes / comment-template.php” verwendet. Kopieren Sie das oder kopieren Sie den callback des Themas und benennen Sie die function in fake_threaded_comment .

3) Finde die function wp_list_comments in der comments.php deines Themes und ändere den Callback. Es sollte so aussehen:

 wp_list_comments(array('callback'=>'fake_threaded_comment')); 

4) Jetzt werden wir ein bisschen schummeln. In diesem callback, ‘fake_threaded_comment’, sollte ein Aufruf der function ‘comment_reply_link’ erfolgen . Wir müssen es so bearbeiten, dass wir hart codierte ‘depth’ und ‘max_depth’ Argumente übergeben. Wir setzen ‘depth’ auf 1 und max_depth auf 2. Dies bringt unseren “Reply” Button / Link zurück.

 comment_reply_link( array_merge( $args, array( 'reply_text' => __( 'Reply ', 'themetextdomainname' ), 'depth' => 1, 'max_depth' => 2 ))); 

5) Richten Sie den Link zum übergeordneten Kommentar ein. In der Callback-function haben Sie möglicherweise Hinweise auf $comment bemerkt. $comment->comment_parent ist die ID des geantworteten Kommentars und get_comment_link($comment->comment_parent) gibt die URL des übergeordneten Kommentars an (nicht das komplette Anker-Markup). get_comment($comment->comment_parent) die übergeordneten Kommentardaten ab. Also, etwas wie …

 $pcom = get_comment($comment->comment_parent); echo 'This is a reply to '.$pcom->comment_author.''; 

Das ist es. Sie können nun bestimmte Kommentare kommentieren, aber sobald sie veröffentlicht sind, wird der Kommentar am Ende oder am Anfang der Kommentarliste angezeigt, abhängig von der Ladefolge.

Getestet mit TwentyEleven auf WordPress 3.4.1 (etwas veraltet, aber es ist bereits auf meinem Dev-Server). Ich bin sicher, es gibt Dinge, die Themen oder Plugins tun könnten, um dies zu brechen, aber ich glaube nicht, dass ein gut benahmtes Thema oder Plugin es brechen würde.

Das ist meine gute Tat für den Tag. Bitte lassen Sie mich wissen, wenn etwas schief geht.