Was ist der einfachste Weg, um Kommentare zu Medien / Anhängen zu schließen?

In meinem primären WP-Blog bekomme ich regelmäßig Spam-Versuche auf verschiedenen und verschiedenen Medienanhängen. Standardmäßig haben Medien offene Kommentare (z. B. http://literalbarrage.org/blog/archives/2009/03/18/daddywill-date-march-2009/dsc08760/ ). Es gibt jedoch keine Möglichkeit, Kommentare zu deaktivieren auf Mediendateien. (zB https://skitch.com/zamoose/rhktp/attachmentedit ) Bildbeschreibung hier eingeben

Also, zwei Fragen:

  1. Wie deaktiviere ich standardmäßig alle Kommentare für zukünftige Uploads?
  2. Wie deaktiviere ich rückwirkend Kommentare zu allen früheren Uploads?

Dies wird dazu beitragen, meinen eingehenden Spam zu reduzieren …

Solutions Collecting From Web of "Was ist der einfachste Weg, um Kommentare zu Medien / Anhängen zu schließen?"

Das sollte es tun:

function wpse15750_comment_check( $id ){ if( get_post_type( $id ) == 'attachment' ) exit; } add_action( 'pre_comment_on_post', 'wpse15750_comment_check' ); 

BEARBEITEN

Ignoriere das Obige. Das wird neue Kommentare stoppen, aber um zu tun, was du willst, ist das viel besser:

 function wpse15750_comments_closed( $open, $id ){ if( get_post_type( $id ) == 'attachment' ) return false; return $open; } add_action( 'pre_comment_on_post', 'wpse15750_comments_closed', 10, 2 ); 

Das wird WordPress sagen, dass Anhänge immer geschlossene Kommentare haben, aber ihre databasewerte werden immer noch “offen” sagen. Wenn Sie das ändern möchten, führen Sie den folgenden Code aus:

 global $wpdb; $wpdb->update( $wpdb->posts, array( 'comment_status' => 'closed' ), array( 'post_type' => 'attachments', 'comment_status' => 'open' ) ); 

Um zu verhindern, dass zukünftige Anhänge offene Kommentare enthalten, verwenden Sie den folgenden Filter:

 function wpse15750_no_attachment_comments( $data ){ if( $data['post_type'] == 'attachment' ) $data['comment_status'] = 'closed'; return $data; } add_filter( 'wp_insert_post_data', 'wpse15750_no_attachment_comments' ); 

Zu Nr. 1 – remove_post_type_support( $post_type, 'comments' ); muss an init angehängt werden.

Codex: https://codex.wordpress.org/Function_Reference/remove_post_type_support

Es scheint auch den Filter comments_open :

 function filter_media_comment_status( $open, $post_id ) { $post = get_post( $post_id ); if( $post->post_type == 'attachment' ) { return false; } return $open; } add_filter( 'comments_open', 'filter_media_comment_status', 10 , 2 ); 

Quelle: http://www.wpbeginner.com/wp-tutorials/how-to-disable-comments-on-wordpress-media-attachments/