it-swarm.com.de

Deaktivieren Sie, dass Kommentare für den benutzerdefinierten Beitragstyp nicht öffentlich angezeigt werden

Ich habe ein CPT, das Kommentare unterstützt. Dieses CPT ist nur für den internen Gebrauch bestimmt. Die Kommentare werden jedoch im Standardwidget "Neueste Kommentare" angezeigt. Sie werden auch im RSS-Feed angezeigt.

Gibt es eine einfache Möglichkeit, um zu verhindern, dass CPT-Kommentare in Widgets, Feeds usw. angezeigt werden?

Vielen Dank

3
smartcat

Entfernen der Kommentare von benutzerdefinierten Beitragstypen aus dem Widget "Neueste Kommentare"

Die Argumente für das Widget für aktuelle Kommentare können mithilfe des Filters widget_comments_args angepasst werden. Um die Beitragstypen anzupassen, deren Kommentare eingefügt werden, können Sie die Variable $post_type anpassen:

$post_type Beitragstyp oder eine Reihe von Beitragstypen, für die verbundene Kommentare abgerufen werden sollen. Übergeben Sie 'any', um einem beliebigen Wert zu entsprechen. Standardmäßig leer.

Standardmäßig werden die Kommentare aller Beitragstypen eingeschlossen. Mit dem folgenden Code wird $post_type auf ein Array festgelegt, das nur post enthält, sodass nur Kommentare aus Beiträgen angezeigt werden. Fügen Sie dem Array einfach weitere Beitragstypen hinzu, um sie einzuschließen.

add_action( 'widget_comments_args', 'wpse_widget_comments_args' );
function wpse_widget_comments_args( $args ) {
    $args['post_type'] = [
        'post',
    ];

    return $args;
}

Kommentare von benutzerdefinierten Beitragstypen aus dem RSS-Kommentar-Feed entfernen

Mit diesem Codeausschnitt (basierend auf der gefundenen Lösung hier ) können Sie die Kommentare zu den Post-Typen book und product (als Beispiel) aus dem RSS-Kommentar-Feed (http://example.com/comments/feed) entfernen. Sie können die where-Klausel der RSS-Abfrage für Kommentare mithilfe des comment_feed_where-Filters ändern.

add_filter( 'comment_feed_where', 'wpse_comment_feed_where' );
function wpse_comment_feed_where( $where ) {
    return $where . " AND wp_posts.post_type NOT IN ( 'book', 'product' )";
}
1
Dave Romsey