web-dev-qa-db-ja.com

ページやカスタム投稿タイプのデフォルトとしてコメントをオフに設定しますか?

ページとカスタム投稿タイプで、コメントをデフォルトでオフにしたい

最初はこれらのページにブロックが表示されないようにコメント表示機能で条件式を使用しましたが、必要に応じてコメントを元に戻すことができるようにする必要があります。

19
Mild Fuzz

私が理解していることから、あなたはページといくつかのカスタム投稿タイプをデフォルトで 'off'とコメントするように設定したいが、それでもポストはデフォルトのオプションを使用する(すなわち 'on'とコメントする)。このような場合、以下の機能がそれを行います。

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' );
8
sorich87

新しい投稿(カスタムタイプまたはレギュラー)を作成すると、WordPressがget_default_post_to_editを呼び出して、新しい投稿のデフォルト値を設定します。

この関数は、デフォルトのタイトル、コンテンツ、および抜粋を変更するためのいくつかのフィルターフックを提供しますが、残念ながら他には何もありません...ただし、各フィルターは完全な$postオブジェクトをコールバックに渡します。これは本質的に、いくつかのプロパティを再定義できることを意味します(または必要に応じて1つだけ)

これはあなたのために働くはずです、単にスイッチ内のケースとしてコードが適用されるべき投稿タイプを追加してください..(映画とページは例です)..

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でテストされており、投稿タイプのコメントを無効にするという望ましい効果がありますが、他の人は継承しますdefaultdefault_comment_statusオプションからのステータス。

それが役に立てば幸い.... :)

10
t31os

デフォルトでページのコメントを無効にするプラグインを書きました。 http://wordpress.org/extend/plugins/page-comments-off-please/ /

おそらくそれは役立つのだろうか?

2
Techism

このスレッド によると、あなたが要求していることはそれを達成するためのカスタムプラグインや関数を使わなければ不可能です。

1

コメント表示ではまだ条件式を使用することをお勧めしますが、条件設定を保存するにはオプションを使用します。その後、[設定]メニューにページを追加して、管理者が必要に応じてコメントをオンまたはオフにすることができます。


更新

あなたがページを作成するたびにそれを "off"に設定するのではなく、グローバル設定として "off"にコメントするためのデフォルトを設定したいのは、私に起こります。これは可能です。

WordPress管理者セクションの設定>>ディスカッションに移動します。最初のセクション(「デフォルトの記事の設定」)には、「新しい記事にコメントを投稿することを人々に許可する」というオプションがあります。このオプションのチェックを外してください。

現在、デフォルトでは、コメントはすべての新しい投稿、ページ、およびカスタム投稿タイプに対して「オフ」になります。個別の投稿/ページ編集画面の[ディスカッション]メタボックスで適切なチェックボックスを選択することで、ケースバイケースでコメントを元に戻すことができます。

1
EAMann