ホームページ制作アトリエ

心えがおホームページ制作 atelier(アトリエ)は、ホームページ・動画制作、教育ICT・アプリ開発、名刺・ポスター・チラシの作成を行っております。

カスタム投稿で更新型コンテンツを作る

カテゴリー:custom, Wordpress
今までカスタム投稿は「Custom Post Type UI」というプラグインを使用していましたが、プラグインを使用する場合、思わぬ場所でjQueryとぶつかってしまったり、プログラムに色々と不具合を起こす原因になったりしますよね。なのでプログラムを直接functions.phpに書き込むことにしました。
しかも思いの他、簡単だったので断然こっちの方が効率が良いです!!
(プラグインの場合は使い方をいちいち覚えなきゃいけないので、個人的にはプログラムを書く方が早いと思っています。表示速度も軽減できますし、サーバーへの負担も少なくなり、微々たるものですが容量の節約にもなります。)

functions.php

register_post_typeに、newsを指定しました。 その他の引数はCodexを参照
※注意するのはpublic 管理画面やサイトにカスタム投稿タイプを表示可能にする設定です。 デフォルトではfalseになっているので、trueに設定しておきましょう!
あとは、menu_positionで、表示位置を指定します。
<<管理画面の左メニュー>>
5は「投稿」の下、10は「メディア」の下、20は「固定ページ」の下。

アーカイブページを持つ

register_post_typeのhas_archiveをtrueにすると、アーカイブページを持つことができるようになります。
今回の例ではアーカイブページのURLは以下のようになります。
http://example.com/news/

テンプレートを作成

次に、画面に表示をするためのテンプレートを作成していきます。 今回はアーカイブページとシングルページの2つです。

アーカイブページ

テンプレート階層は、以下の順番になっています。
archive-news.php
archive.php
index.php
ループは通常通りの記述です。
ページャーも「設定>表示設定」で指定した「1ページに表示する最大投稿数」を参照。

シングルページ

テンプレート階層は下記のようになります。

single-news.php
single.php

シングルページも通常のループの記述で問題ありません。
f これで画面を表示してみると・・・

←管理画面には投稿の下にニュース用のカスタム投稿が出来るようになっています。

実際に投稿をしてみました。

c 両方大丈夫ですね!
(クリックで拡大して見てください)

パンくずリストを作る

d しかし、このままではパンくずリストが切れてしまっています。
なのでパンくずも付け加えておきましょう。

シングルページ

書く場所はfanction.phpの中のパンくずを条件分岐してある個所の中ならどこでも構いません。
今回、私は「添付ファイルページ」の次に書き加えました。

アーカイブページ

こちらも同様に忘れずに!

アイキャッチ画像と抜粋の機能を付ける

g 次に、更新するとトップページに表示されるようにします。
「お知らせ」の記述では解りにくいので、実際にサンプル記事を入れてみます。
最初に書いた記述ではアイキャッチ画像と抜粋の機能がつけられていません。
まずはregister_post_type関数の引数(supports)に「thumbnail」と「excerpt」の値を入れます。
するとfanction.phpは以下のようになります。 あとはテーマを対応させるだけになります。
※もともとテーマが対応している場合はこれだけで大丈夫です。
今回はカスタム投稿についての記事なので、テーマを対応させる方法は省きます。
オリジナル関数
e 最後に、ページの見出しがこのままではブログになっていますので、各ページの見出しを出力するテーマ関数も書き加えておかないといけません。
こちらもシングルページとアーカイブページの両方に書き加えます。

その他、オリジナルで関数を作っている人は見落とさないように書き加えておきましょう。