サポートされているフォーマット
以下の投稿フォーマットは、テーマがサポートしている場合に利用可能です。
実際の投稿内容は変更されませんが、テーマは選択されたフォーマットに基づいて投稿を異なる方法で表示できます。投稿の表示方法は完全にテーマに依存しますが、異なる投稿フォーマットの一般的な使用法に関するガイドラインは以下の通りです。
- aside – 通常、タイトルなしでスタイリングされます。Facebookのノート更新に似ています。
- gallery – 画像のギャラリー。投稿にはギャラリーのショートコードが含まれ、画像の添付ファイルがあります。
- link – 別のサイトへのリンク。テーマは、投稿内容内の最初の
<a href=””” タグをその投稿の外部リンクとして使用することを望むかもしれません。別のアプローチとして、投稿がURLのみで構成されている場合、それがURLとなり、タイトル(post_title)がそのアンカーに付随する名前となります。 - image – 単一の画像。投稿内の最初の
タグが画像と見なされる可能性があります。あるいは、投稿がURLのみで構成されている場合、それが画像URLとなり、投稿のタイトル(post_title)が画像のタイトル属性となります。 - quote – 引用。おそらく、引用内容を保持するブロック引用を含むでしょう。あるいは、引用が単に内容であり、出典/著者がタイトルである場合もあります。
- status – 短いステータス更新、Twitterのステータス更新に似ています。
- video – 単一のビデオ。投稿内容内の最初の
- audio – オーディオファイル。ポッドキャスティングに使用される可能性があります。
- chat – チャットのトランスクリプト、次のように:
John: foo
Mary: bar
John: foo 2
投稿を書くか編集する際に、「標準」は投稿フォーマットが指定されていないことを示します。また、無効なフォーマットが指定された場合、「標準」(フォーマットなし)がデフォルトで適用されます。
関数リファレンス
主な関数
その他の関数
テーマサポートの追加
テーマは、functions.php ファイル内で add_theme_support() を使用して、WordPress にどの投稿フォーマットをサポートするかを配列として渡す必要があります。
<?php
function themename_post_formats_setup() {
add_theme_support( 'post-formats', array( 'aside', 'gallery' ) );
}
add_action( 'after_setup_theme', 'themename_post_formats_setup' );
after_setup_theme フックは、テーマが読み込まれた後に投稿フォーマットのサポートが登録されるように使用されます。
投稿タイプサポートの追加
投稿タイプは、functions.php ファイル内で add_post_type_support() を使用して、WordPress にどの投稿フォーマットをサポートするかを伝える必要があります:
<?php
function themename_custom_post_formats_setup() {
// add post-formats to post_type 'page'
add_post_type_support( 'page', 'post-formats' );
// add post-formats to post_type 'my_custom_post_type'
add_post_type_support( 'my_custom_post_type', 'post-formats' );
}
add_action( 'init', 'themename_custom_post_formats_setup' );
または、register_post_type() 関数内で、’supports’ パラメータ配列に ‘post-formats’ を追加します:
<?php
$args = array(
'supports' => array( 'title', 'editor', 'author', 'post-formats' ),
);
register_post_type( 'book', $args );
add_post_type_support は、init フックにフックされるべきです。カスタム投稿タイプは、after_setup_theme で登録されていない可能性があります。
フォーマットの使用
テーマ内で、get_post_format() を使用して投稿のフォーマットを確認し、それに応じてプレゼンテーションを変更します。デフォルトフォーマットの投稿はFALSEの値を返すことに注意してください。あるいは、has_post_format() 条件タグを使用します:
<?php
if ( has_post_format( 'video' ) ) {
echo 'This is the video format.';
}
推奨スタイリング
フォーマットに対する別のアプローチは、スタイリングルールを通じてです。テーマは、投稿を囲むラッパーコード内で post_class() 関数を使用して動的スタイリングクラスを追加するべきです。投稿フォーマットは、この方法で追加のクラスを引き起こし、「format-foo」名を使用します。
例えば、ステータスフォーマットの投稿から投稿タイトルを隠すには、テーマのスタイルシートにこれを入れることができます:
.format-status .post-title {
display: none;
}
各フォーマットは、現代の使用法によって指示される特定の「スタイル」に適しています。スタイルを適用する際には、各フォーマットの意図された使用法を考慮することが重要です。
例えば、aside、link、および status フォーマットはシンプルで短く、マイナーです。これらは通常、タイトルや著者情報なしで表示されます。aside にはおそらく1、2段落が含まれる可能性がありますが、link はURLへのリンクを含む1文だけです。link と aside の両方は、単一の投稿ページへのリンクを持つ可能性があります(the_permalink() を使用)し、コメントを許可しますが、status フォーマットにはそのようなリンクはおそらくありません。
一方、画像投稿は通常、キャプション/テキストの有無にかかわらず単一の画像のみを含むでしょう。オーディオ/ビデオ投稿も同様ですが、オーディオ/ビデオが追加されます。これらの3つのいずれかは、プラグインまたは標準の Embeds を使用してコンテンツを表示できます。タイトルや著者情報は表示されない可能性もあります。なぜなら、コンテンツが自己説明的である可能性があるからです。
引用フォーマットは、追加情報なしで人からのシンプルな引用を投稿するのに特に適しています。引用を投稿内容に単独で入れ、引用された人の名前を投稿のタイトルに入れると、the_content() を単独で表示するように投稿をスタイル設定し、the_title() を使用して引用された人の名前をバイラインとして表示できます。
特にチャットは、多くの場合、等幅フォントの表示に傾くでしょう。 .format-chat にスタイリングを施すことで、投稿の内容を等幅フォントで表示し、灰色の背景の div 内に配置することで、視覚的にチャットセッションとして区別できます。
子テーマにおけるフォーマット
子テーマ は、親テーマによって定義された投稿フォーマットを継承します。子テーマで投稿フォーマットのために add_theme_support() を呼び出す場合、親テーマの優先度よりも遅い優先度で行う必要があり、既存のリストを上書きし、追加するのではありません。
<?php
add_action( 'after_setup_theme', 'childtheme_formats', 11 );
function childtheme_formats() {
add_theme_support( 'post-formats', array( 'aside', 'gallery', 'link' ) );
}
remove_theme_support(‘post-formats’) を呼び出すと、すべてが削除されます。