フォーラム

[解決済み] 特定のカテゴリを必ず選択された状態にする (5 件の投稿)

  1. peco
    メンバー
    2 週前の投稿 #

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

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

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

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

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

  2. jim912
    メンバー
    2 週前の投稿 #

    pecoさん、こんにちは。

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

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

  3. peco
    メンバー
    2 週前の投稿 #

    jim912さん、はじめまして。

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

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

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

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

  4. jim912
    メンバー
    2 週前の投稿 #

    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 );
  5. peco
    メンバー
    2 週前の投稿 #

    jim912さん。

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

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

返信

ログイン しなければ投稿できません。

About this Topic