サポート » 使い方全般 » 特定のカテゴリを必ず選択された状態にする

  • 解決済 peco

    (@peco)


    現在複数のユーザーがいるブログを構築しています。

    ユーザー権限を設定するプラグイン 「role scoper」 を利用して、
    各ユーザーに異なるデフォルトカテゴリを設定しているのですが、
    そのデフォルトカテゴリが自動的に選択される仕組みがうまく作成できない状態です。

    他のプラグインやフックでもよろしいので、デフォルトカテゴリが自動的に選択される
    方法をご教授していただきたいと思います。

    補足です:実際はデフォルトカテゴリ(必ず選択される)+ユーザーが任意のカテゴリを選択
    という形を目指しています。

    ぜひ、みなさまよろしくお願いいたします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • モデレーター jim912

    (@jim912)

    pecoさん、こんにちは。

    概略ですが、set_object_termsでフックして$tt_idsにユーザーのデフォルトカテゴリidがなければ、追加するような処理ではいかがでしょうか。

    set_object_termsは、wp-includes/taxonomy.phpのline1446-(ver2.8.4)です。

    トピック投稿者 peco

    (@peco)

    jim912さん、はじめまして。

    アドバイスありがとうございます。

    教えていただいた方法ですが、自分のスキルでは実現することが難しそうなので、
    簡単な例文を頂くことは出来ますでしょうか?

    ちなみに、現在ユーザー数は10人ほどいて、デフォルトのカテゴリーの数も
    人数分の10カテゴリほどある状態です。

    お手数ですが、よろしくお願いいたします。

    モデレーター jim912

    (@jim912)

    pecoさん、こんにちは。

    下記、コードでどうでしょうか。

    function compulsorily_select_default_cat( $object_id, $terms, $tt_ids, $taxonomy ) {
    	if ( $taxonomy != 'category' ) { return; }
    
    	$default_cat_id = (int) get_option( 'default_category' );
    	if ( in_array( $default_cat_id, $tt_ids ) ) { return; }
    
    	wp_set_object_terms( $object_id, array( $default_cat_id ), 'category', true );
    }
    
    add_action( 'set_object_terms', 'compulsorily_select_default_cat', 10, 4 );

    トピック投稿者 peco

    (@peco)

    jim912さん。

    ご教授いたいただきありがとうございます。

    これから、上記のコードをベースにカスタマイズに挑戦してみたいと思います。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「特定のカテゴリを必ず選択された状態にする」には新たに返信することはできません。