最新コラム
-
-
-
-
-
Webサイト制作Web開発
【shopify】テーマをカスタマイズするためのLiquidの書き方
-
Webサイト制作Webデザイン
Webデザインの初心者必見!Webデザインの勉強方法を徹底解説
目次
カスタム投稿とは、WordPressで最初から用意されている「投稿」「固定ページ」とは別に、ユーザーが独自に新しい投稿タイプを作って運用することができる機能です。
投稿タイプは複数作成することができます。
たとえばカスタム投稿を実装し、「事業所情報」という新しい投稿タイプを作ったとしましょう。
するとダッシュボードのメニューバーに「投稿」「固定ページ」とは別に「事業所情報」というメニューが表示され、通常の投稿ページと同じように記事の作成ができるようになります。
通常の「投稿」「固定ページ」とは別に記事を管理できるため、Webサイトの運営者側としては有難い機能ですよね。
またカスタム投稿タイプごとに投稿一覧を表示したり、他の投稿とは別の外観テンプレートを適用したりもできるため、閲覧者側も情報が探しやすく、分かりやすくなります。
使い慣れたWordPressの機能や操作性はそのままで、Webサイトの情報を充実させていけるカスタム投稿は大変便利です。
この機能を利用するには、
この2つの方法があります。
WordPressにはたくさんのプラグイン存在していますが、これらは元々あるユーザーが作ったものを、別のユーザーが使えるようにと公開されたものです。
ですからプラグインで出来ることは、自分でカスタマイズして作ることが出来るのです。
今回は、カスタム投稿機能をプラグインを使わずに自分で実装する方法を解説していきます。
紹介する手順の通り行えばカスタム投稿機能を実装することはできますが、以下について理解していることが望ましいです。
また手順を実践していく前にバックアップを取っておくのを忘れずに行ってください。もし間違って編集してしまい、元からあった機能が正しく動作しなくなってしまった場合でもバックアップから復元できます。
WordPressのダッシュボードにアクセスし、メニューから「外観」→「テーマ編集」にアクセスします。
function.phpの編集画面を開いたら、以下のコードを任意の場所に入力します。
add_action( 'init', 'create_post_type' ); function create_post_type() { register_post_type( 'カスタム投稿タイプの識別子を決めてアルファベットで入力', array( 'label' => __( 'カスタム投稿タイプ名を入力' ), 'public' => true, 'has_archive' => true, ) ); }
このコードを入力して更新すると、メニューバーにカスタム投稿タイプ名が表示されます。
配列で渡している各要素の意味は次の通りです。
この他にも設定できる要素が存在しています。
必要な場合はWordPress公式の関数リファレンスをご覧ください。
またカスタム投稿タイプの識別子(function.phpを編集した際に「register_post_type」の第一引数として与えた文字列)として、以下の文字列は使用できません。
WordPressに最初から実装されている「投稿」や「固定ページ」の識別子として既に使用されていたり、今後使用される予定があるためです。
これらを使用しないよう、識別子を決める際には注意しましょう。
カスタム投稿タイプに関する記事を作成してみましょう。WordPressのダッシュボードにアクセスし、メニューから、先ほど追加したカスタム投稿タイプ名→「新規追加」にアクセスします。
通常の投稿や固定ページの編集画面と同じような画面が表示されました。
カスタム投稿タイプの記事作成・編集も、これまでの投稿タイプを同じように扱うことができます。
何かひとつ記事を作成して公開しましょう。
ダッシュボードから公開した記事を表示すると、いつも利用している「投稿」と同じ外観で、カスタム投稿タイプの記事が表示されます。
ですが「カスタム投稿は、通常の投稿と見た目を変えたいのに……」という事もあるでしょう。
テンプレートに新しいファイルを追加すれば、「投稿」とは異なる外観でカスタム投稿タイプ記事を表示させることも可能です。
「single-カスタム投稿タイプの識別子.php」というファイルを新たに作成すると、これがカスタム投稿タイプ専用のテンプレートとして扱われ、WordPressが自動で切り替えてくれます。
記事の内容に合わせて見た目も変えたいという場合は、テンプレートファイルを追加してください。
カスタム投稿タイプの記事一覧は、以下のURLで表示できます。
http://example.com/sample/
※「example.com」部分はご自分のWebサイトのドメイン、「sample」部分をカスタム投稿タイプの識別子に置き換えてください。
このURLにアクセスすると、普段の投稿一覧と同じように、カスタム投稿タイプの記事一覧が表示されます。
一覧も記事と同様に、カスタム投稿タイプ専用の外観を設定することが可能です。
テンプレートに「archive-カスタム投稿タイプの識別子.php」を追加すると、そのカスタム投稿タイプ専用の投稿一覧テンプレートとして利用できます。
特定のカスタム投稿タイプ中の投稿だけを検索させる方法をご紹介します。
前述の通りPHPやWordPressのカスタマイズに関する知識が必要です。
検索フォームを設置したい場所に、以下のコードを書きます。
<form method="get" id="searchform" action="<?php bloginfo('url'); ?>/"> <input type="text" value="<?php the_search_query(); ?>" name="s" id="s" /> <input type="hidden" name="post_type" value="カスタム投稿タイプの識別子" /> <input type="submit" id="searchsubmit" value="Search" /> </form>
3行目のvalue値にカスタム投稿タイプの識別子を設定します。
このように記述することで「このカスタム投稿タイプの中から絞り込む」という検索条件が加わります。
「事業所情報」というカスタム投稿タイプを例としましょう。
「事業所情報の全投稿から『東京』というワードを含むものを検索する」ということが、このフォームを使うことで可能になるのです。
カスタム投稿タイプ別投稿一覧などと同様に、カスタム投稿タイプ別検索結果についても外観を設定することが可能です。
WordPressでは、検索結果一覧を表示する際に使う外観テンプレートを「search.phpというファイルがあればこれを使う。なければindex.phpを使う」というように決めています。
カスタム投稿タイプ別で検索を行った場合も同じ優先順位です。
つまり、通常の投稿を検索した際の結果一覧と同じテンプレートが使われることになります。
ですが「通常の投稿とカスタム投稿タイプとで記事一覧の外観を分けたのだから、検索結果も別々の外観を使いたい」という事もあるのではないでしょうか。
次はその手順をご紹介します。
まずは検索結果を表示する際に使うテンプレートファイルを作成して保存しましょう。
検索結果一覧については、先に紹介した記事や投稿一覧とは異なり、テンプレートファイルの名前のつけ方が決まっていません。自分で名前を決めて作る『カスタムテンプレート』となります。
今回は、今後の保守のしやすさを重視して「search-カスタム投稿タイプの識別子.php」という名前をつけることにします。
テンプレートファイルの作成が終わったら、function.phpに以下のコードを追記します。
add_filter('template_include','custom_search_template'); function custom_search_template($template){ if ( is_search() ){ $post_types = get_query_var('post_type'); foreach ( (array) $post_types as $post_type ) $templates[] = "search-{$post_type}.php"; $templates[] = 'search.php'; $template = get_query_template('search',$templates); } return $template; }
6行目で、専用のテンプレートを使って表示するという命令を与えています。
{$post_type}はプログラム上でカスタム投稿タイプの識別子に変換されるため、複数のカスタム投稿タイプがあり、それぞれにテンプレートを用意する場合であっても、このコードだけでWordPressが自動で振り分けをしてくれるのですね。
これまで「カスタム投稿機能を自分で実装する方法」についてご紹介しましたが、読んでいてどのように感じたでしょうか?
「簡単そうだな」と思う方もいれば「難しそう、よくわからない」と感じた方もいらっしゃるでしょう。
これまで紹介した手順で実装する場合、プラグインを使って実装するのに比べてどのような違いがあるかをご紹介します。
自分で実装する場合は、プラグインを使う場合と比べてシンプルになるという利点があります。
プラグインは他人が作っている分、不透明な部分が多いのですよね。
作成者が海外の方の場合は、説明文の日本語訳がおかしな事になっていて混乱することもあります。
プラグインの設定方法については多くのブログで解説されていますが、できれば分かりやすくシンプルに、自分でも理解しながら設定したいところですよね。
管理していく上での分かりやすさやシンプルさを求めるのであれば、自分で実装するのも良いでしょう。
自力で実装する場合は、PHPというプログラミング言語の知識が必要になってきます。
「プログラミングなんてやったことないよ」という方にとっては、ここが最大の壁となります。
元々WordPressはPHPで作られているCMSです。
Web制作の知識がなくても本格的なWebサイトを作ることができるのがWordPressの利点のひとつではありますが、より便利にカスタマイズして使うのであればWeb制作の知識があるほうが圧倒的に有利です。
ご紹介した通り、カスタム投稿機能の追加はとても簡単な部類のカスタマイズですから、元からPHPの知識がある方は挑戦するのも良いでしょう。
逆にプログラミングの知識がまったくないのであれば、プラグインで簡単に実装する方が確実で楽な方法と言えるでしょう。
カスタム投稿は、プラグインを使って実装するだけでなく自作も出来ることが分かりましたね。
しかしプラグインを使わずに自作する場合、PHPとWordPressの知識が必要です。
プログラミングが分かる個人で運用しているWebサイトなどであれば問題はないでしょうけれど、プログラミング経験者が社内に数人しかいない場合などは、今後の事も考えてプラグインで実装するほうが安心ですね。
カスタム投稿機能を使えば、本格的なWebサイトをより便利に管理していくことが可能です。
通常の「投稿」以外の投稿タイプを作りたいと考えた時は、是非実装してみてください。