Im September 2017 hatte ich einen Blogbeitrag dazu geschrieben, wie man Schlagwörter von privaten Beiträgen in der Tag-Cloud anzeigen lassen kann. Vor drei Wochen wurde in einem Kommentar gefragt ob etwas ähnliches auch für Kommentare aus privaten Beiträgen im Kommentare-Widget möglich sei. In diesem Beitrag möchte ich euch zu dieser Fragestellung eine kleine Lösung präsentieren.
Argumente für die Kommentare-Query filtern
Standardmäßig zeigt das Kommentare-Widget nur die letzten fünf Kommentare von öffentlichen Beiträgen an. Die Argumente der Query sehen wie folgt aus:
array (
'number' => 5,
'status' => 'approve',
'post_status' => 'publish',
)
Wie fast immer gibt es auch hier einen Filter in WordPress, über den wie diese Standardwerte anpassen können:
function comments_of_private_posts( $args ) {
if ( current_user_can( 'read_private_posts' ) ) {
if ( ! is_array( $args['post_status'] ) ) {
$args['post_status'] = array( $args['post_status'] );
}
$args['post_status'][] = 'private';
}
return $args;
}
add_filter( 'widget_comments_args', 'comments_of_private_posts' );
Dieser kleine Codeschnippsel prüft zuerst einmal die Berechtigungen des aktuellen Zugangs und ob dieser private Beiträge lesen kann (ihr könnt diese Bedingung auch eventuell weglassen, wenn alle auch die Kommentare auf private Beiträge sehen können sollen). Anschließend wird das post_status
Argument in ein Array konvertiert, falls es noch keine ist. Zuletzt wird der Post-Status private
angehängt und das Array zurückgegeben. Jetzt sollten alle Zugänge, die auch auf private Beiträge zugreifen können, die Kommentare zu solchen Beiträgen im Kommentare-Widget sehen. Alle anderen (nicht angemeldeten) sehen weiterhin nur Kommentare zu öffentlichen Beiträgen.
Fazit
Ich habe nie über private Beiträge und Kommentare zu diesen nachgedacht. Daher Danke an Irit für ihre Frage im Kommentar. Es hat mich auf die Idee zu diesem Blogbeitrage gebracht und glücklicherweise war die Lösung auch wirklich sehr einfach. Wenn ihr diese Funktion auch mal ausprobieren wollt, dann findet ihr den Code dazu wie immer in einem GIST. Hier könnt ihr euch auch wieder alles als ZIP-Datei runterladen und einfach als Plugin auf eurer Seite installieren.
Ihr braucht vielleicht nicht genau das gleiche für euren Blog, aber wie ihr sehen könnt kann man über diesen Filter auch beispielweise die Anzahl der angezeigten Kommentare oder andere Argumente ändern.
Falls ihr auch eine Frage zu einem meiner Beiträge habt, dann hinterlasst sehr gerne einen Kommentar. Vielleicht bringt es mich ja auf eine Idee für einen neuen Blogbeitrag und die Lösung hilft auch anderen.