見出し画像

【 WordPress 】 "カスタム投稿タイプ" 名前がややこしいだけだったので解説! 投資家のFIREへの旅路 ♯405

 WordPressの機能のひとつとして「カスタム投稿タイプ」というものがあります。

名前は知っていて、なんとなく何ができるのかは知っているけど、なんだかややこしいそう。
しかも、別に使わなくてもなんとかなるので、今まで導入してこなかったのですが、時間があったので、学習してみると、

簡単&便利だったので、解説します!


【 カスタム投稿タイプ 】

オリジナルの投稿タイプを作ることができる

▶︎ 投稿タイプとは?

管理画面のサイドバーの、「投稿」が、 
WordPressに初めから設定されている標準の「投稿タイプ」となります。

上の画像では、「投稿」の他に、本来はない「ニュース」という項目が出ていますね。
これが「カスタム投稿タイプ」になります。



【 カスタム投稿タイプの設定 】

カスタム投稿タイプを作るには、
functions.phpのファイルに下記のコードを入れるだけです。

/**カスタム投稿タイプ */

add_action('init',function(){
  register_post_type('news',[
    'label' => 'ニュース'/**カスタム投稿タイプの名前 */
    'public'=> true/**カスタム投稿タイプを表示させる */
    'menu_position'=> 4/**カスタム投稿タイプのサイドバーの位置 (任意) */
    'supports' => ['thumbnail','title','editor'],/**カスタム投稿タイプのページの編集画面に表示させる項目 */
  ]);
});

▶︎ コード解説

add_action('init',function(){
・
・
・
});

こちらのコードは、定型文のようなものです。コピペでOKです。


register_post_type('news',[
・
・
・
]);

こちらのコードで、カスタム投稿タイプの名前を決めるという認識です。

'news'  というカスタム投稿タイプを追加するという意味合いになります。


register_post_type('news',[
    'label' => 'ニュース'/**カスタム投稿タイプの名前 */
    'public'=> true/**カスタム投稿タイプを表示させる */
    'menu_position'=> 4/**カスタム投稿タイプのサイドバーの位置 (任意) */
    'supports' => ['thumbnail','title','editor'],/**カスタム投稿タイプのページの編集画面に表示させる項目 */
  ]);

'news' に続いて大括弧[ ]が登場します。

この大括弧の中で、'news'の内容を、設定します。
この設定内容は、多数ある
のですが、全てを使う必要はなく、上記の項目でも十分です。

'label' => 'ニュース'/**カスタム投稿タイプの名前 */
'public'=> true/**カスタム投稿タイプを表示させる */

最低限必要なのは、この2つです。

'label'  => 'ニュース'と書いた場合、管理画面のサイドバーに「ニュース」と表示されます。

'public' => 'true' とすると、サイドバーに今回作成したカスタム投稿タイプの「ニュース」の項目が表示されます。
これを書かないと、表示されません。

【 カスタム投稿タイプで投稿する 】

カスタム投稿タイプを使っての投稿は、既存の投稿と同じです。

管理画面のサイドバーに追加された、カスタム投稿タイプから、新規追加して、記事を書きましょう。


【 single-カスタム投稿タイプ名.php 】

カスタム投稿タイプの投稿内容の表示は、
今回のように、'news'というカスタム投稿タイプを作った場合、

「single-news.php」という名前のファイルを作ることで、news専用のページのレイアウト作ることができます。


※ 注意 ※

上記のように、single-news.phpを追加した場合、そのままサイトを表示して、ニュース記事をクリックしても、single-news.phpを読み込んでくれません。

管理画面の、
設定 → パーマリンク → (何もせずに)変更を保存をクリック!

とすると、single-news.phpを読み込むようになります。

 

【 まとめ 】

カスタム投稿タイプについて書きました。

今回は、「ニュース」というカスタム投稿タイプを作りましたが、

例えば、本の一覧のカスタム投稿タイプを作るのであれば、
カスタム投稿タイプの名前を'book'とし、
'label' => '本の一覧' とするだけです。

ネーミングは、自由ですから、わかりやすいものを設定し、自由にカスタムしましょう!!





この記事が気に入ったらサポートをしてみませんか?