- サイトデザイン工事中です。ご意見をお寄せください。
- 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細)
投稿フォーマット
バージョン 3.1 から導入された投稿フォーマットは、テーマが投稿表示をカスタマイズする際に使えるメタ情報です。基本的には、投稿の各形式に対して特定の表示の仕方を提供するためのものと考えるとよいでしょう。カテゴリーを使って同様の事をしなくてもよくなりますし、もっと重要なこととして、テーマが変わっても同様の形式に対応していれば互換性があるという事です。
アサイド(Asides)という投稿フォーマットを例にとってみます。今までは、「アサイド」カテゴリーを作成しここに投稿を含めてから、post_class() または in_category('asides') というタグを使って表示スタイルを変えていました。
新しいアプローチである投稿フォーマットを使えば、テーマ内で投稿フォーマット(例: add_theme_support('post-formats', array( 'aside')))を定義し、投稿を保存する際にその形式を「公開」メタ情報ボックスから選ぶことができます。get_post_format( $post->ID )/en 関数で形式を定義でき、post_class() で "format-asides" クラスを生成し、CSS のみのスタイリングができます。
目次 |
対応している投稿フォーマット
訳注: ※がついている日本語表記の正式版は現在検討中です。
- aside(アサイド※)
- 通常タイトルなしで表示。Facebook の Notes のようなもの。
- chat(チャット)
- チャット履歴。例えば以下のようなもの。
太郎: やあ! 花子: 元気? 一郎: おう!
- gallery(ギャラリー)
- 画像ギャラリー
- image(画像)
- 単独の画像。投稿本文内の最初の <img /> タグが画像と見なされる。もし投稿本文が URL のみの場合はそれが動画 URL となり、投稿タイトル (post_title) が画像の title 属性となる。
- link(リンク)
- 他サイトへのリンク。投稿本文内の一つ目の <a href=””> タグがその投稿の外部リンクと見なされる。もし投稿本文が URL のみの場合はその URL が外部リンクとなり、投稿タイトル (post_title) が名前となる。
- quote(引用)
- 引用文。引用文と引用元のテキストエリアを設けるのが望ましい。引用文は <blockquote>$quote_wrapped_with_paragraphs<p><cite>$citation</cite></p></blockquote> として post_content に保存すること。
- status(近況 ※)
- 通常140程度の短い近況アップデート。Twitter のツイートのようなもの。
- video(動画)
- 単独の動画。投稿本文内の最初の <video /> タグまたは object/embed が動画と見なされる。もし投稿本文が URL のみの場合は、それが動画 URL となる。
関数リファレンス
テーマやプラグインから set_post_format()/en を使って投稿フォーマットを設定できる。また、形式が設定されるかどうかチェックするには get_post_format()/en を使う。
テーマ対応方法
テーマをこの機能に対応させるには、add_theme_support() を使う。形式の配列を以下のように渡し、どの投稿フォーマットに対応しているのかを WordPress へ知らせる。
add_theme_support( 'post-formats', array( 'aside', 'gallery' ) );
さらにテーマ内で get_post_format()/en を使って投稿の形式をチェックし、適切な表示形式を適用する。デフォルト形式の投稿では戻り値が FALSE になることに注意する。または条件分岐タグのひとつである has_post_format()/en を使う。
if ( has_post_format( 'video' ) {
echo 'this is the video format';
}
後方互換
この機能を含めたプラグインやテーマを古いバージョンにも対応させるには、post-format-$format というキーワード項目を "post_format" に含める必要がある。例えば以下の通り。
wp_insert_term('post-format-aside', 'post_format');
また、register_taxonomy() を使って post_format taxonomy を登録すること。
最新英語版: WordPress Codex » Post Formats (最新版との差分)