私のブログWPでは、さまざまな雑多なメディアの添付ファイルに対するスパム攻撃を一貫して受けています。デフォルトでは、メディアにはオープンコメントがあります(たとえば、 http://literalbarrage.org/blog/archives/2009/03/18/daddywill-date-march-2009/dsc08760/ )、まだメディアファイルのコメントを無効にするネイティブな方法はありません。 (例: https://skitch.com/zamoose/rhktp/attachmentedit )
それで、2つの質問:
これは私の入ってくるスパムを減らすのに役立つトン...
これはそれをするべきです:
function wpse15750_comment_check( $id ){
if( get_post_type( $id ) == 'attachment' )
exit;
}
add_action( 'pre_comment_on_post', 'wpse15750_comment_check' );
上記を無視してください。それは新しいコメントを止めます、しかしあなたが望むことをするために、これははるかに良いです:
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 );
それは添付ファイルが常にクローズドコメントを持っていることをWordPressに伝えますが、それらのデータベース値はまだ 'open'と言うでしょう。変更したい場合は、次のコードを実行してください。
global $wpdb;
$wpdb->update( $wpdb->posts, array( 'comment_status' => 'closed' ), array( 'post_type' => 'attachments', 'comment_status' => 'open' ) );
今後の添付ファイルに未解決のコメントが含まれないようにするには、次のフィルタを使用します。
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' );
1号に関して - remove_post_type_support( $post_type, 'comments' );
はinitにフックする必要があります。
コーデックス: https://codex.wordpress.org/Function_Reference/remove_post_type_support
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 );
出典: http://www.wpbeginner.com/wp-tutorials/how-to-disable-comments-on-wordpress-media-attachments/