
多店舗展開している企業サイトなどで、店舗ごとにサイト運用担当者を置き、店舗ごとにお知らせやブログを作成したい、なんてことがあります。
こういった場合、最初に頭に浮かぶのはマルチサイトWordPressを使って一つのWordPressで複数のブログを運営する方法です。
しかし、マルチサイトWordPressと通常のWordPressではシステム構造が異なるため、その違いや挙動について詳しい知識がないと、思わぬ要件で“ハマって”しまうことにもなりかねません。
 
できればシングルサイトWordPressで作りたい・・・。
 
では、改めて要件を整理しましょう。
 
店舗ごとにお知らせやブログを作成したいということは・・・店舗ごとにユーザーアカウントを作成し、そのアカウントではおのおのの店舗カテゴリーの投稿だけしかできないようにすればいいわけですよね。
つまり「ユーザー単位で投稿できるカテゴリーを限定する」ことができればシングルサイトWordPressでも「店舗ごとにサイト運用担当者を置き、店舗ごとにお知らせやブログを作成する」ことができるということです。
 
ということで今回の本題「ユーザー単位で投稿できるカテゴリーを限定する」手順について、ご紹介していきます。
 
の2つ。



/* 管理者以外が新規投稿などのページを開いたらカテゴリの最初の項目に自動チェック */
add_action('admin_print_footer_scripts', 'admin_print_footer_scripts_custom', 21);
function admin_print_footer_scripts_custom()
{
  $user_roles = wp_get_current_user()->roles;
  if (!in_array('administrator', $user_roles)) {
    echo '<script type="text/javascript">
    //<![CDATA[
    jQuery(document).ready(function($){
      // default check
      if ($("#category-all .categorychecklist input[type=checkbox]:checked").length == 0) {
        $("#category-all .categorychecklist li:first-child input:first-child").attr("checked", "checked");
      }
    });
    //]]>
    </script>';
  }
}
 
これで準備完了です。
それぞれの店舗のユーザーアカウントでログインしてみてください。
メニューには自分のプロフィールの編集用のメニューと投稿、メディアくらいしか見えておらず(contact form 7を導入しているサイトでは「問い合わせ」メニューが見えているかもしれませんが、入ってみると何にもできないようになっているはずです)、そして、投稿メニューで投稿しようとすると、カテゴリーは自分の「{店舗名}からのお知らせ」しか選択できないと思います。
 
いかがでしょうか。
これでマルチサイトWordPressを使わなくても「店舗ごとにサイト運用担当者を置き、店舗ごとにお知らせやブログを作成できる」サイトを作ることができますね。
 
以上、ユーザー単位で投稿できるカテゴリーを限定する方法のご紹介でした。
WordPressカスタマイズ事例やウェブ制作ノウハウの新着情報、お役立ち情報を
リアルタイムにメルマガ配信!