has_post_format()


WordPressのhas_post_format()関数は、指定された投稿が特定の投稿フォーマットを持っているかどうかを確認するために使用されます。

構文

has_post_format( string|string[] $format, int|WP_Post|null $post = null );

引数の説明

  • $format (string|string[]) — 確認したい投稿フォーマット。単一の文字列または文字列の配列を指定します。
  • $post (int|WP_Post|null) — チェックする投稿のIDまたは投稿オブジェクト。省略時は現在の投稿を使用します。

戻り値

  • true — 指定されたフォーマットが投稿に存在する場合。
  • false — 指定されたフォーマットが投稿に存在しない場合。

例 1: 投稿が「ギャラリー」フォーマットかどうかを確認

<?php if ( has_post_format( 'gallery' ) ) { echo 'この投稿はギャラリーフォーマットです。'; } ?>

例 2: 現在の投稿のフォーマットを複数確認

<?php
if ( has_post_format( array( 'gallery', 'video' ) ) ) {
    echo 'この投稿はギャラリーまたはビデオフォーマットです。';
}
?>

例 3: 特定の投稿IDでフォーマットを確認

<?php if ( has_post_format( 'aside', get_the_ID() ) ) { echo 'この投稿はアサイドフォーマットです。'; } ?>

例 4: カスタムメッセージの表示

<?php
if ( has_post_format( 'video' ) ) {
    echo 'ビデオ投稿をお楽しみください!';
} else {
    echo 'この投稿は通常の形式です。';
}
?>

例 5: フォーマットごとに異なるスタイルを適用

<?php
if ( has_post_format( 'audio' ) ) {
    echo '<div class="audio-style">オーディオ投稿のスタイル</div>';
} elseif ( has_post_format( 'image' ) ) {
    echo '<div class="image-style">イメージ投稿のスタイル</div>';
} else {
    echo '<div class="default-style">通常投稿のスタイル</div>';
}
?>

注意事項

この関数は投稿フォーマットが有効になっている場合にのみ機能します。テーマでadd_theme_support('post-formats')を使用して有効化してください。
投稿フォーマットが正しく設定されていない場合、結果はfalseになります。


関連機能: