web-dev-qa-db-ja.com

"Standard"のget_post_format()が空を返すのはなぜですか

カスタム投稿タイプを有効にしました

add_theme_support( 'post-formats', array( 'aside', 'link', 'gallery', 'status', 'quote', 'image' ) );

デフォルトの投稿タイプはStandardに設定されていて、標準の投稿がある場合はStandardタイプを除くすべてに対して有効で、get_post_format()は空になります。それらを有効にすることで何かを見逃したのですか?

3
ilyo

"Standard"はフォーマットそのものではありません - ポストにフォーマットがないことを単に意味しています

...選択する形式として[形式]メタボックスに表示されている場合、これはやや欺瞞的です。

私は「標準」がそれが何を意味するのかをはっきりと暗示していると思います。投稿が「標準」ではないサイトを作成している場合は、デフォルトにフォールバックします。

if ( ! $format = get_post_format() )
    $format = 'gallery';

あるいは、wp_insert_postをフックして、フォーマットがまだ設定されていなければそれを強制します。

function wpse_58121_set_default_format( $post_id ) {
    if ( ! get_post_format( $post_id ) )
        set_post_format( $post_id, 'gallery' );
}
6
TheDeadMedic