ページとカスタム投稿タイプでコメントをデフォルトでオフにしたい
最初は、これらのページにブロックが表示されないようにコメント表示関数で条件を使用しましたが、ユーザーが必要に応じてコメントをオンに戻すことができるようにする必要があります。
ページとカスタム投稿タイプでコメントをデフォルトでオフにしたい
最初は、これらのページにブロックが表示されないようにコメント表示関数で条件を使用しましたが、ユーザーが必要に応じてコメントをオンに戻すことができるようにする必要があります。
回答:
私が理解していることから、あなたはページといくつかのカスタム投稿タイプをデフォルトでコメントを「オフ」に設定したいが、投稿はまだデフォルトのオプションを使用する(すなわち、「オン」をコメントする)。この場合、次の関数が実行します。
function default_comments_off( $data ) {
if( $data['post_type'] == 'page' && $data['post_status'] == 'auto-draft' ) {
$data['comment_status'] = 0;
}
return $data;
}
add_filter( 'wp_insert_post_data', 'default_comments_off' );
新しい投稿(カスタムタイプまたはレギュラー)を作成すると、WordPressが呼び出します get_default_post_to_edit
て、新しい投稿のデフォルト値を設定します。
この関数は、デフォルトのタイトル、コンテンツ、および抜粋を変更するためのいくつかのフィルターフックを提供しますが、残念ながら他には何もありません...しかし、各フィルターは完全な$post
オブジェクトをコールバックに渡します。私たちが好き)
これはあなたのために働くはずです、単にスイッチ内のケースとしてコードが適用されるべき投稿タイプを追加してください..(映画とページは例です)..
function my_default_content( $post_content, $post ) {
if( $post->post_type )
switch( $post->post_type ) {
case 'page':
case 'movie':
$post->comment_status = 'closed';
break;
}
return $post_content;
}
add_filter( 'default_content', 'my_default_content', 10, 2 );
コードはWP 3.0.1でテストされており、投稿タイプのコメントを無効にし、他のユーザーにはデフォルトを継承させるという望ましい効果があります。のdefault_comment_status
オプションはステータスをオプションからします。
それが役に立てば幸い.... :)
デフォルトでページのコメントを無効にするプラグインを作成しました。 http://wordpress.org/extend/plugins/page-comments-off-please/
おそらくそれが役立ちますか?
このスレッドによると、あなたが要求していることは、それを達成するためにカスタムプラグインまたは関数を使用しないと不可能です。
コメント表示で条件を引き続き使用することをお勧めしますが、オプションを使用して条件設定を保存します。次に、管理者が必要に応じてコメントをオンまたはオフにできるページを[設定]メニューに追加できます。
私は、ページを作成するたびに「オフ」に設定するのではなく、グローバル設定として「オフ」にコメントのデフォルトを設定したいことがあります。これは可能です。
WordPress管理セクションの[設定] >> [ディスカッション]に移動します。最初のセクション(「既定の記事の設定」)には、「ユーザーに新しい記事へのコメントの投稿を許可する」というオプションが表示されます...このオプションをオフにします。
これで、デフォルトで、コメントはすべての新しい投稿、ページ、およびカスタム投稿タイプに対して「オフ」になります。個々の投稿/ページ編集画面の[ディスカッション]メタボックスで適切なチェックボックスを選択することにより、ケースバイケースでコメントを「オン」に戻すことができます。