WordPressでカスタム投稿タイプとカスタムフィールドを実装する方法

公開: 2014-06-10

WordPressは、もはやブログだけに限定されているわけではありません。WordPressは、提供するあらゆる種類のコンテンツを表示およびフォーマットできる、フル機能のコンテンツ管理システムです。 それでは、WordPressを拡張する2つの優れた方法について話しましょう。カスタム投稿タイプとカスタムフィールドです。

カスタム投稿タイプ

テストサイトのMondayMorningMug(メール統合ブログの投稿で使用)には、対処すべき新しい問題があるようです。 私たちのブログは非常に大きくなったので、フルタイムのコーヒーレビュースタッフを雇いました。 彼らはコーヒーを淹れ、レビューを書くのに忙しい。 彼らはこれらのレビューをブログに投稿していますが、私たちの読者は、これらのレビューのすべてが私たちの「実際の」ブログコンテンツの邪魔になっていると私たちに言いました。 コーヒーのレビューのために別の場所を作る必要がありますが、通常のWordPressページではそれをカットすることはできません。 レビューアはまた、コーヒーの産地やテイスティングノートなどの情報をウェブサイトに簡単に保存できる場所が欲しいと提案しています。 これは、カスタム投稿タイプ、つまりサイトに新しいコンテンツセクションを作成できるWordPress機能の完璧な使用法のように思えます。

カスタム投稿タイプは非常に柔軟性があり、あらゆる種類のコンテンツに実装できます。引用、ビデオ、さまざまな色合いのペイントはすべて、カスタム投稿タイプの例です。

コーヒーのレビューでいっぱいの/coffees/サブディレクトリにウェブサイトの新しいセクションを追加したいと思います。 これには少しコードのラングリングが必要になりますが、比較的簡単なプロセスである必要があります。

注:これを行うには、WordPressインストールディレクトリ内の.phpファイルを編集できる必要があります。これには通常FTP / SFTP/SSHアクセスが必要です。 続行する前に、これがあることを確認してください。

すべてのWordPressテーマは、次の場所にあるfunctions.phpファイルを利用できます。
/wp-content/themes/your_current_theme/functions.php
このファイルは通常、テーマ固有のサイトの変更や、これから行うような小さなカスタムサイトの変更に使用されます。

注: functions.phpファイルにコードを追加します。これは、テーマ固有であることを意味します。 これをfunctions.phpファイルに追加してから、WordPressインストールのテーマを変更すると、Webサイトからカスタム投稿タイプが削除されます。 カスタム投稿タイプUIなどのプラグインを利用して、カスタムコンテンツタイプを維持できます。

1. Functions.phpファイルを開き、ファイルの最後に次のコードを追加します。

function create_new_post_type() {
$labels = array(
'name' 			 => __('Coffee Reviews'),
'singular_name'  => __('Coffee Review'),
);
$args = array(
'labels'      	 => $labels,
'public' 	  	 => true,
'has_archive' 	 => true,
'menu_position'  => 5,
'description'    => 'Reviews And Types of Coffee',
'rewrite'     	 =>
array('slug' => 'reviews'),
'supports'    	 =>
array( 'title',
'comments', 'editor',
'thumbnail', 'custom-fields', 'revisions'),
);

register_post_type('Reviews', $args);
}
add_action('init', 'create_new_post_type');

コードが何をするのかを知らずにコードを利用するのは特に好きではないので、このコードが何をするのかを見ていきましょう。

注: $labels$argsは、後でその関数に引数として渡されただけなのに、 register_post_type()関数の外部で定義されていることに気付いたかもしれません。 この方法は、整理と読みやすさを向上させますが、両方の配列を1つの引数に凝縮することができます。 理解するのはもっと難しいでしょう。

$args配列には、新しいコンテンツタイプを定義するために必要なすべての詳細が含まれています。 これらの機能は次のとおりです。

  • 'labels' –コンテンツタイプと呼ぶものを定義する配列。 使用できるラベルは他にもたくさんあります。完全なリストは、こちらのドキュメントにあります。
  • 'public' –投稿が管理パネルの外部で表示可能かどうかを定義するブール値。
  • 'has_archive' – trueの場合、このブール値は、標準のWordPress投稿と同様に、このタイプのカスタム投稿のアーカイブを作成します。
  • 'menu_position' –この整数は、カスタム投稿ナビゲーションボタンの移動先を変更します。 数字の5は、[投稿]タブのすぐ下に表示されることを示しています。 数値コードの完全なリストについては、同じドキュメントを確認してください。
  • 'description' –投稿タイプを説明します。
  • 'rewrite' –これにより、スラッグが「レビュー」に変更され、使用可能なパーマリンク構造を作成するのに役立ちます。 (ブール値にすることもできます。詳細については、ドキュメントを確認してください。)
  • 'supports' –どのネイティブWordPress編集/投稿機能が有効になるかを定義する配列。 これはかなり柔軟性があり、さらに多くのオプションがありますが、この投稿には少なくともcustom-fieldseditorが必要になります。

次にregister_post_type()関数が呼び出され、定義した引数の配列を使用して、Reviewsという新しい投稿タイプが作成されます。

最後に、プロセスを完了するために最後の1つの関数を呼び出す必要があります。 register_post_type()は、常にアクション'init'によって初期化する必要があります。 を呼び出すことで、新しい関数をinitにフックできます

add_action(‘init’, ‘create_new_post_type’);

素晴らしい! WordPress管理パネルにログインすると、左側に「レビュー」という新しいタブが表示されます。

coffee_reviews

2.カスタム投稿タイプとしてレビューを設定したので、読者が投稿を簡単に見つけられるように、パーマリンク構造を更新する必要があります。 さらに、URLがはるかに読みやすく、SEOに適しています。

3. [設定]->[パーマリンク]メニューバーの下に、パーマリンク構造の一般的なオプションがたくさんあります。 フィールド/%category%/%postname%/に一致するようにカスタム設定を変更します

これは、WordPressが投稿のカテゴリとタイトルに一致するURLを生成することを意味します。

注:これはサイト全体の変更であり、他のカテゴリの投稿に影響します。

custom_permalink

それでは、レビュー担当者がスマトラケティアラコーヒーについて書いた投稿のURLを見てみましょう。

sumatra_permalink

素晴らしい! そのURLをチェックしてください。 レビューは独自のディレクトリに分けられており、URLは平易な英語で書かれています。 これで、読者はリンクをクリックしたときに何が得られるかを正確に知ることができます。

カスタムフィールド

レビュー担当者は新しいレビューセクションを気に入っていますが、原産国やテイスティングノートなど、すべてのコーヒーについて書く共通の情報を入力できるように、バックエンドに何かを組み込むように依頼しました。 これは、カスタムフィールドの完璧な使用法のように聞こえますが、幸いなことに、実装は非常に簡単です。

1.個々のレビューエディタでは、エディタの右上隅に画面オプションボタンが表示されます。

screen_options

クリックするとこれに展開されます:

screen_options_dropdown

2. [カスタムフィールド]ボックスをオンにします。

エディターの下に、有効にした[カスタムフィールド]ボックスが表示されます。

custom_fields_blank

3.両方のボックスに何でも入力できます。 [名前]フィールドに入力して追加したものはすべて、後で使用できるように保存されます。 ここでは、コーヒーの産地と国をリストします。

custom_fields_region

カスタムフィールドを使用すると、すべての投稿のカテゴリに関連するデータを個別の場所で非常に簡単に標準化できます。 これで、レビューに表示する情報を取得する必要があります。

4.このコードタグをテーマドキュメントの1つに追加します。

<br /><?php the_meta(); ?><br />

注:この例では、このタグをcontent.phpファイルに配置しますが、値のテーブルを配置するのに適した場所を見つける必要があります。 また、このタグをテーマの残りの部分と一致するようにスタイル設定する必要があります。これについて詳しくは、こちらをご覧ください。

ブログに戻ると、タグがレビューにリストを挿入していることがわかります。

custom_field_example

しゃれた! 今、私たちの読者と私たちの査読者は両方とも幸せです。 コーヒーに関するレビューを保存できるカスタム投稿タイプを作成することができました。また、レビュー担当者に、さまざまなレビューごとに重要な情報をすべて保存する場所を提供することができました。