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 )
Also, zwei Fragen:
Dies wird dazu beitragen, meinen eingehenden Spam zu reduzieren …
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' );
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/