2015/11/17WordPressには「投稿」や「固定ページ」の他にも投稿する方法があるのをご存知でしょうか?WordPressではカスタム投稿という機能で用途に合わせた投稿方法を追加し、独自のCMSにカスタマイズすることが可能です。標準で用意されている投稿方法は以下のような意味合いを持ちます(個人的な解釈です)。「固定ページ」・・・汎用的なWEBページサイトの規模が大きくなるとこの2種類では何かと不便です。ここでカスタム投稿が役立ちます。カスタム投稿を使えば以下のような投稿方法が追加できます。「製品情報」カテゴリやタグを使って項目分けすることもできますが、利用者目線で考えると投稿方法の時点で項目が分かれていたほうが親切です。標準で「カテゴリ」、「タグ」が用意されていますがカスタム投稿同様、追加することが可能です。カスタム分類(タクソノミー)といいます。この記事の目次カスタム投稿・分類はプラグインを使えば簡単に追加できるけど...functions.phpにカスタム投稿・分類の設定を書こう、しかし...ラッパー関数を利用して超シンプルに!カスタム投稿を超簡単に追加するサンプルカスタム分類の追加も超簡単!カスタム投稿タイプの記事一覧を取得する方法カスタム投稿・分類はプラグインを使えば簡単に追加できるけど...カスタム投稿・分類の追加はプラグインを利用することで簡単に実現できます。UI」というプラグインが有名ですね。私も以前は使っていました。プラグインはとても便利です。簡単だし細かく設定できます。テストサーバーと本番サーバーでそれぞれプラグインを個別に設定しないといけないんです。投稿やカテゴリなどはエクスポートできるのですが、プラグインの設定はエクスポートできないのです。FTPのファイルを直接移行しようとしても無駄です。データベースに設定が記憶されている為です。カスタム投稿・分類の種類が少なければ個別に設定していっても問題はないかと思いますが、そうでない場合は大きなリスクが付きまといます。functions.phpにカスタム投稿・分類の設定を書こう、しかし...カスタム投稿・分類を追加するもう一つ方法に「function.php」に設定を記述するというものがあります。この方法はphpファイルに直接設定を記述するため、テストサーバーのfunction.phpを本番サーバーにアップロードすれば設定が引き継げます。functions.phpの場所は以下になります。/wordpress/wp-content/themes/○○○○/functions.phpしかしこの方法には大きな欠点があります。パラメーターが多くて設定が面倒だということです。非プログラマーの人を遠ざける原因になっているかと思います。参考までにカスタム投稿を追加する関数「register_post_type」のリファレンスご覧ください。見るだけで疲れますよね。ラッパー関数を利用して超シンプルに!前置きが長くなりましたが上記の「register_post_type」関数をシンプルに扱えるライブラリ(といえるレベルでもないですが)を作成しましたので下記からダウンロードしてお使いいただければと思います(ご自由に改変してください)。custom_post_tax.zip使い方は簡単。解凍して出てきた「custom_post_tax.inc」を「functions.php」と同じディレクトリにコピーします。"custom_post_tax.inc";//カスタム投稿タイプ追加set_post_type_list(array(array("newsrelease","ニュースリリース"),));上記の例では「ニュースリリース」というカスタム投稿タイプを追加しています。「newsrelease」の部分が投稿タイプ名、「ニュースリリース」の部分がラベルです。投稿タイプ名とはIDのようなもので、get_posts関数などで記事を読み込む際に利用します。ラベルは管理画面のナビゲーションやタイトルに表示される文字列です。複数カスタム投稿を追加する場合は下記のように記述します。//新しく追加));一行追加しただけです。これで「製品情報」というカスタム投稿タイプが追加されました。中級者向けの設定として下記のように各パラメータの追加も可能です(分からない人は読み飛ばしてください)。//labelsと一部を除いたパラメータが指定できますset_post_type_list(array(array("products","製品情報",array('supports'=>array('title'))),));カスタム分類の追加も超簡単!さらにカスタム分類(タクソノミー)も追加してみましょう。先述のset_post_type_list()の下あたりに追記してください。set_custom_category_list(array(array("newscategory","ニュースカテゴリ","newsrelease"),array("productscategory","製品情報カテゴリ","products"),));カスタム投稿と基本同じですがパラメータの説明をすると左から分類(タクソノミー)名、ラベル、投稿タイプ名となります。分類(タクソノミー)名、ラベルはカスタム投稿と同じなので割愛します。投稿タイプ名はカスタム分類を追加したい投稿タイプ名を追加します。この例では投稿タイプ「ニュースリリース」に分類「ニュースカテゴリ」が追加されたことになります。上記の例ではカテゴリタイプのカスタム分類を追加しましたが、タグタイプの追加も可能です。下記のように記述します。set_custom_tag_list(array(array("feature","製品の特徴","products"),));これで投稿タイプ「製品情報」に分類「製品の特徴」が追加されました。関数名が変わっただけなので説明は割愛!これらを適用すると以下のようになります。最終的なソースコードは以下のようになります。"custom_post_tax.inc";set_post_type_list(array(array("newsrelease","ニュースリリース"),array("products","製品情報"),));set_custom_category_list(array(array("newscategory","ニュースカテゴリ","newsrelease"),array("productscategory","製品情報カテゴリ","products"),));set_custom_tag_list(array(array("feature","製品の特徴","products"),));管理画面のカスタマイズはこれで完了です。カスタム投稿タイプの記事一覧を取得する方法カスタム投稿タイプは標準の投稿タイプとは異なり、記事を取得するのにひと手間必要です。カスタム投稿一覧を取得するサンプルソースコードを紹介します。TOPページテンプレート等に記述してください。the_content();}この例では、投稿タイプが「products(製品情報)」であり、その中でも分類「productscategory(製品情報カテゴリ)」が「car」であるものを取得します(下記参照)。ダッシュボードは表示できたのですが、この投稿をどこに表示するのか?がわかりません。PM>ほしゃしゃさんコメントありがとうございます。サイト上にカスタム投稿タイプに入力した内容を表示させる方法でしょうか?それでしたら、本記事の「カスタム投稿タイプの記事一覧を取得する方法」をご覧ください。動作しない場合は、この部分のコードとダッシュボードに表示させる側のコードの投稿タイプ名が一致していない可能性があるかもしれません。PMありがとうございます!single.phpで投稿表示されました。PMtaxonomy.phpを読めましたー!archive.phpでも読めました!何度かトライしたんですがうまく表示されず?でした。コメントをキャンセルメールアドレスが公開されることはありません。90%...】プログラミング学習を挫折することなく学ぶ方法こんにちはkakeruです。...余計な記述無しで要素の高さを揃えるjQueryプラグインSmartHeightLineを公開しました。HTMLやCSSだけでは実現が難しいレイアウトってありますよね。特定要素に高さを揃えることもその一つ。この問題をスマートに解決できるjQueryプラグインを公開しましたので是非お役立てください。AIR」公開しました。炎上するも反省しない本当の理由メンタリストDaigoさん、炎上していますね。...主張がコロっと変わるインフルエンサーは本当に信用出来ないのか?最近『インフルエンサー』と呼ばれる人達が注目されています。本業Webエンジニアの副業アフィリエイター。ブログアフィリエイトを中心に行い、最高月収は55万円を達成。小川忠洋が代表を務める『ダイレクト出版』の評判と過去の失態を明らかに!本当に信用できるのかまとめてみました。