ウサヲ日記をカスタム投稿で追加しメニューに追加する
ウサヲです。
このウサヲブログは、ウェブ開発に絡む備忘録なのですが、それにしても時折、備忘録とは別にウェブ開発に絡む日記的なものを描きたくなる時が出てきました。(基本的になんのこっちゃ分からなくなった時に色々と愚痴りたくなるものであります。)
誰かに読んでほしいというよりも、どちらかといえば愚痴日記を書くことによって、ウサヲが直面している難題や壁に対して向き合って整理整頓し、解決につながるのではないか、と思うところもありました。
そこで、日記を追加しようと思うのですが、すでにデフォルトの投稿は備忘録で使ってしまっているため、新たにカスタム投稿を追加することにしました。また、サイドバーにウサヲ日記用のバナーをつけて、「これはちょっと備忘録とは別だからね」をアピールしてみようと思います。
やりたいこと
大変シンプルなカスタム投稿タイプを追加し、そのリンクをサイドバーとモバイル対応用のメニューにつける。
まずは大変シンプルなカスタム投稿タイプを追加する。
functions.phpにカスタム投稿追加用ののコードを追加します。以下の感じです。
今回動きを確認するために、WordPress Codex 日本語版から関数リファレンス/register post typeを参考に、コメント欄にたくさん追記しております。かえって読みにくくてすみません。
add_action('init', 'create_post_type'); function create_post_type(){ // カスタム投稿タイプ ウサヲ日記 $labels = array( 'name' => _x('ウサヲ日記', 'post type general name'), 'singular_name' => _x('ウサヲ日記', 'post type singular name'), 'add_new' => _x('新規追加','custompost-slug'), 'add_new_item' => __('新規ウサヲ日記を追加'), 'new_item' => __('新規ウサヲ日記投稿'), 'edit_item' => __('ウサヲ日記の編集'), 'view_item' => __('ウサヲ日記を表示'), 'all_items' => __('ウサヲ日記一覧'), 'search_items' => __('ウサヲ日記を検索'), 'parent_item_colon' => '', 'not_found' => __('ウサヲ日記が見つかりませんでした。'), 'not_found_in_trash' => __('ゴミ箱内にウサヲ日記が見つかりませんでした。'), ); $args = array( 'labels' => $labels, //上で定義した$labels 'description' => 'ウサヲブログで使うウサヲ日記のカスタム投稿', //簡潔な説明。 'public' => true, // 公開するならにtrue。falseにしたことがないと思うがどういう時に使うのだろう・・。 'exclude_from_search' => true, //サイトサーチの検索対象にこのカスタム投稿の記事を含めるかどうか。trueは含まない。falseは含む。デフォルトは'public'の引数の反対'public'の引数がtrueならこちらはfalse)。今回は含めないのでtrue。 'publicly_queryable' => true, //post_type クエリが実行可能かどうか。デフォルトは 'public'の引数。 'show_ui' => true, //管理画面で表示するならtrue。デフォルトは'public' の引数。 'show_in_nav_menu' => true, //ナビゲーションメニューでこの投稿タイプが選択可能かどうか。デフォルトは 'public'の引数。 'show_in_menu' => true, //管理画面で表示するならtrue。デフォルトは'show_ui'の引数。表示するなら'show_ui'がtrueでなければならない。 'show_in_admin_bar' => true, //この投稿タイプを管理バーから使えるようにするかどうか。デフォルトは'show_in_menu'の引数。 'menu_position' => 5, //5:投稿の下 その他5飛の数で管理画面の位置が決まる。 'capability_type' => 'post', //権限制御に利用するワード。一般的にデフォルト'post'を使うことが多いと思う。 'hierarchical' => false, //この投稿タイプが階層を持つならtrue。固定ページの場合は意識する、で良いのかな。 'supports' => array('title', 'editor', 'author', 'revisions'), //投稿画面で表示されるいろいろなオプションを表示する場合にはそれを追記する。 'has_archive' => true, //この投稿をアーカイブとして使用するならtrue。これ大切。 'rewrite' => array('slug' => '', 'with_front' => false), //パーマリンクのリライト方法。どこかで使ったことがある・・。 'query_var' => true, //この投稿に使用するquery_varキーの名前。デフォルトはtrueで$post_type の値になる。 ); register_post_type('usawodiary', $args); }
これで管理画面をリロードすると、こんな↓感じで追加されていることを確認できます。
タクソノミーとかは必要ないので、本当にシンプルです。シンプル大好きです。
次に、ウサヲ日記をメニューとして扱ってみる
ウサヲブログはそもそもグローバルナビを扱っておりません。なぜならそれを必要としないからであります。ただ、サイトを開いた瞬間何がどこにあるのかわからないと困ったちゃんに成ってしまうので、以下のページだけは初期画面でわかりやすいように表示したいと考えました。
- ウサヲブログホーム
- それぞれのメインなカテゴリ一覧
- ウサヲ日記
- ウサヲブログについて
- お問い合わせ
上記のページはウサヲ日記を除き、それぞれデフォルトの投稿ページと固定ページなのですが、カスタム投稿タイプのウサヲ日記は別物として取り扱わなければなりません。
そこで、こんなプラグインを利用して対応しました。それがWordPress Post Type Archive Linksです。設置の詳細についてはこちらをご覧ください。詳細って言ってもインストールするだけなので、実に短いページなのですが。
ということで、このプラグインによってウサヲ日記をメニューとして扱うことができるようになりました。