投稿タイプ

WordPress は多数の異なるタイプのコンテンツを保存し、表示することができます。「投稿」はひとつの「投稿タイプ」ですが、任意の投稿タイプのコンテンツを WordPress の内部では投稿と呼んでいます。どの「投稿タイプ」のコンテンツもすべてひとつの場所(データベースの wp_posts テーブル)に格納されていて、post_type というカラムによって区別されます。

WordPress 3.0 からは自分でカスタム投稿タイプを追加して異なる用途に利用できるようになっています。

デフォルトの投稿タイプ

特に削除しない限り、WordPress のインストールの際に必ず含まれるデフォルトの投稿タイプは次のとおりです:

  • 投稿 (投稿タイプ: ‘post’)
  • 固定ページ (投稿タイプ: ‘page’)
  • 添付ファイル (投稿タイプ: ‘attachment’)
  • リビジョン (投稿タイプ: ‘revision’)
  • ナビゲーションメニュー (投稿タイプ: ‘nav_menu_item’)
  • カスタム CSS (投稿タイプ: ‘custom_css’)
  • チェンジセット (投稿タイプ: ‘customize_changeset’)

投稿 (post)

WordPress の投稿 (post) 」はブログで最もよく使われる投稿タイプです。「投稿」はふつう一番新しいものが最初にくる反時系列順で表示されます。「投稿」フィードの作成にも使われます。

固定ページ (page)

WordPress の固定ページ (page) 」「投稿」に似ていますが、いくつかの非常に重要な違いがあります。 「固定ページ」「投稿」のように時系列構造では表示されません。また「固定ページ」は他の「固定ページ」を親に持つ階層化した構造にすることもできますが、ふつうはカテゴリータグをつけることができません。
そして「固定ページ」は異なるページテンプレートを使って表示できます。パーマリンクを有効にすると、「固定ページ」のパーマリンクはメインサイトの URL と「固定ページ」の名前(親があれば親の名前も)を組み合わせたものになります。この名前はスラッグとも呼ばれる、親しみやすく URL として正しい形式の文字列です。この違いについて詳しくは固定ページの説明を見てください。

添付ファイル (attachment)

添付ファイル (attachment) 」は特別な投稿で、WordPress のメディアアップロードシステムを使ってアップロードされたファイルについて、ファイル名や説明などの情報を保持します。これらの情報はメタデータと呼ばれ、wp_postmeta テーブルに格納されている情報とリンクしています。例えばファイルが画像の場合、メタデータは画像のサイズや自動生成されたサムネイル、ファイルの場所、HTML の alt 属性用テキスト、画像に埋め込まれていた EXIF データから取得した情報などになります。

リビジョン (revision)

リビジョン (revision) 」は下書きや公開済みの投稿・固定ページなどの変更履歴を保存するための特別な投稿タイプで、投稿や固定ページなどで記述を間違えて保存してしまって以前のバージョン戻したい場合に利用されます。「リビジョン」は基本的には元となる公開済みの投稿や固定ページと同じ形式のデータですが、その子として保存されています。紐づけられた親は wp_posts テーブルの post_parent カラムで表されます。

Menus

ナビゲーションメニュー (nav_menu_item) 」は Web サイトをナビゲートするために使用できるリンクのリストで、WordPress のナビゲーションメニューシステムの各メニュー項目を保存するための投稿タイプです。これにより、訪問者が使用する Web サイトのさまざまな場所へのリンクのカスタムリストを作成し、ダッシュボードのテーマセクションで編集して、投稿やページなどの従来の投稿タイプから切り離すことができます。

カスタム CSS (custom_css)

「カスタム CSS (custom_css) 」は、カスタマイザーの「追加 CSS」画面から保存された CSS を保存するために使用されるテーマ固有の投稿タイプです。 各テーマには独自のカスタム CSS を含めることができますが、実際に使用されるのは有効化されているテーマのカスタム CSS のみです。
通常、カスタム CSS を投稿として意識する必要はありません。

チェンジセット (customize_changeset)

「チェンジセット (customize_changeset) 」はリビジョンに似ていますが、カスタマイザー専用です。 これは、カスタマイザーを永続的な状態に保つために利用されます。 WordPress は、チェンジセットでユーザーから編集中にカスタマイザーを介して行われたコンテンツの変更を保持し、現在の編集を終了した場合にそれらを復元します。
通常、このチェンジセットも投稿として意識する必要はありません。

Custom Post Types

カスタム投稿タイプ

WordPress には既に多くの標準的な投稿タイプがありますが、より細かなカテゴリーに分類したい場合は、登録されている投稿タイプの数を増やすことができます。 たとえば、書籍に関するセクションが必要な場合は、書籍用のカスタム投稿タイプ「書籍」を作成する方が適しています。 これは、register_post_type 関数を使用して実行できます。

テーマを切り替えた場合にカスタム投稿タイプがなくなってしまわないように、プラグイン(または mu-plugins ディレクトリ内のプラグイン)でカスタム投稿タイプを定義することを強くお勧めします。 これによって、テーマの変更に関わらずコンテンツに常にアクセスできるようになります。

テンプレートファイル

デフォルトでは、WordPress はテーマの index.phpsingle.phparchive.php ファイルを使用して、Web サイトのあらゆるタイプの投稿を表示します。
一方、カスタム投稿タイプを作成した場合は、他の投稿タイプとは異なる見た目でこの情報を表示したい場合があります。 これを行うには、テーマ内で投稿タイプ独自のカスタムテンプレートを使用します。

例えば上記のように「書籍(例としてスラッグを `book` とします)」という名前のカスタム投稿タイプを作成する場合、single-book.php というテンプレートファイルを作成して、公開する個々の書籍の投稿を表示できます。 また、すべての書籍の投稿をカスタムアーカイブページに表示するには、archive-book.php テンプレートファイルを作成します。これにより、公開したすべての書籍の投稿が表示されます。

投稿タイプクエリ

書籍という名前のカスタム投稿タイプのリストを取得したい場合は、新しい WP_Query インスタンスを作成してそれらをすべて取得することができます。 これは、Web サイトのどこかにカスタムループを作成し、他の投稿とは異なる方法で表示したい場合に便利です。

投稿クエリ

場合によっては、ブログ投稿のメインクエリにカスタム投稿を含めたいことがあります。 これを行うには、pre_get_posts フィルターフックを使用します。これによって Web サイトに表示されるよりも先に、投稿を取得するクエリをカスタマイズできます。

原文

この記事は役に立ちましたか ? どうすればさらに改善できますか ?