設定用のカスタム投稿タイプを作成して投稿後は編集のみで新規投稿できないようにする
最近はWordPress抜きで納品することの方が珍しいってぐらいWordPress案件が多いです。 WordPressでの納品がデフォルトっぽくなって来たとはいえ、仕様に関してはなかなか統一できないのが目下の悩みの種です。
運営者のリテラシーで仕様が異なる
コンテンツSEO、オウンドメディア的に有利にフルカスタマイズしても、運営側にある程度リテラシーが必要になってくるってのが、イマイチ仕様が統一できない理由の一つです。 保守契約を結んでいただけると我々としてもできることが増えますので、ますますの営業努力が必要だなぁ〜と感じています。
とは言え、制作としてもこのまま手をこまねいているわけにはいきませんので、何かしら対応策を考えてみました。
設定用のカスタム投稿タイプで出力をコントロール
とりあえず標準的な機能をフル装備したWordPressを制作し、設定用のカスタム投稿タイプを設置して必要な機能やレイアウトをコントロールしてみることにしました。
新規投稿できないようにする
設定用のカスタム投稿タイプなので新規投稿をできなくすることが望ましいので、以下のような設定でカスタム投稿タイプを制作しました。
functions.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
register_post_type( 'config', array( 'label'=> 'config', 'labels' => array( 'menu_name' => 'サイトの設定'//管理画面のメニュー名 ), 'description'=> 'config', 'public' => true, 'capabilities' => array( 'create_posts' => $confcreate,//新規追加禁止 'edit_post' => 'edit_posts'//編集を可能に ), 'publicly_queryable' => false, 'show_in_nav_menus' => false, 'exclude_from_search' => true,//検索から除外 'query_var' => true, 'hierarchical' => false, 'rewrite' => array('slug' => 'config'), 'has_archive' => false, 'supports' => array( 'title' ), 'menu_position' => 5 ) ); |
create_postsが$edit_postになっていると新規投稿ができますので、初回投稿時は$edit_postになるようにしておいて投稿時、変数にそれ以外の値が入るようにカスタムフィールドを作成し新規投稿できないようにしています。不必要な記述もあるかもしれませんが一旦これでうまく動いているので、そのまま掲載しておきます。
ちなみに設定ページはフロントに出力されないようにしています。
- 2016年01月19日火曜日
- :Naruhiko Wakai
comments