サポート » プラグイン » ユーザー別に「投稿用カテゴリーの初期設定」を定義したい

  • 解決済 djcomkato

    (@djcomkato)


    「投稿用カテゴリーの初期設定」をユーザー別に設定したいのですが、そういったプラグイン等はありますでしょうか?
    運用ルールとして「投稿時にカテゴリーを必ず指定する」としているのですが、結構変更し忘れが多く本体のデフォルトカテゴリーで投稿してしまうケースが多いもので。

    逆に、どのカテゴリーにもチェックが入っていない状態にし、投稿時に選択し忘れしてると警告が出るような仕組みでも良いと思っています。

    何か情報があれば教えてください。
    よろしくお願いいたします。

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

    (@jim912)

    djcomkatoさん、こんにちは。

    「投稿用カテゴリーの初期設定」をユーザー別に設定したいのですが、そういったプラグイン等はありますでしょうか?

    知りませんので作りました。(爆)
    ユーザープロフィールの経歴欄にカテゴリーのIDを半角数字で入力いただければ、デフォルトカテゴリーが指定カテゴリーになります。
    本来なら専用の項目を追加すべきですが、そこまで手間をかけられなかったので、経歴欄を利用させていただきました。経歴欄がお嫌であれば、descriptionと記述してある部分をaimと変更すればAIM欄、yimと変更すればYahoo IM欄、jabberと変更すればJabber / Google Talk欄が使えます。

    数値が指定されていなかったり、指定された数値が無効なものであった場合は、デフォルトのカテゴリーになるか、ID1のカテゴリーになります。

    <?php
    /*
    Plugin Name: change_default_category_by_user
    Plugin URI:
    Description: change_default_category_by_user
    Author:
    Version: alpha
    Author URI:
    */
    
    function change_default_category_by_user() {
    	global $wpdb;
    
    	$current_user = wp_get_current_user();
    
    	if ( ! $current_user ) { return false; }
    
    	if ( isset( $current_user->description ) && $wpdb->get_var( $wpdb->prepare( "SELECT taxonomy FROM $wpdb->term_taxonomy WHERE term_id = %s", (int)$current_user->description ) ) == 'category' ) {
    		return (int)$current_user->description;
    	} else {
    		return false;
    	}
    }
    
    add_filter( 'pre_option_default_category', 'change_default_category_by_user' );

    トピック投稿者 djcomkato

    (@djcomkato)

    jim912さん

    ご回答ありがとうございます!!!
    こんなさらっと出来てしまうなんて・・・

    ちょっとドタバタしてるので、余裕が出来たら実験してご報告いたします。
    ついでに、プラグイン作成の勉強にも使わせて頂きます(笑

    ありがとうございました。 m(_ _)m

    トピック投稿者 djcomkato

    (@djcomkato)

    大変遅くなってしまいましたが、ようやく実装しました。
    description は文字通り自己紹介で使いたかったので、代わりに aim を利用。
    ご説明の通り、3か所の$current_user->description$current_user->aim に変更して、無事期待通りの結果になりました。

    jim912様、ありがとうございました。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「ユーザー別に「投稿用カテゴリーの初期設定」を定義したい」には新たに返信することはできません。