Re: 商品新規追加における投稿フォーマット(post_formats)

ホーム フォーラム 使い方全般 商品新規追加における投稿フォーマット(post_formats) Re: 商品新規追加における投稿フォーマット(post_formats)

#65397

thetarbre
参加者

プラグインファイルにコードを挿入するのは最善の方法でないのは理解しておりますが、検索の結果、上記の質問の臨時対処法を見つけましたのでそのコードスニペットをお知らせいたします。

(カスタマイズ時におけるプラグインのプラグイン制作などのアドバイスやよい情報のサイトがあれば是非ご指導願います。)

ソース元の内容は私の質問と少し違いがありますがこちらがソースのURLです。

http://wordpress.stackexchange.com/questions/16136/different-post-format-options-per-custom-post-type

// Register all post types that we will use

add_action( ‘after_setup_theme’, ‘wpse16136_after_setup_theme’, 11 );

function wpse16136_after_setup_theme()

{

add_theme_support( ‘post-formats’, array( ‘aside’, ‘gallery’, ‘video’ ) );

}

// Register our custom post type, and link the post formats to the post types

// Yes, you can (ab)use add_post_type_support to save extra data like this

add_action( ‘init’, ‘wpse16136_init’ );

function wpse16136_init()

{

register_post_type( ‘wpse16136’, array(

‘public’ => true,

‘label’ => ‘WPSE 16136’,

‘supports’ => array( ‘title’, ‘editor’ ),

) );

add_post_type_support( ‘wpse16136’, ‘post-formats’, array( ‘gallery’, ‘video’ ) );

add_post_type_support( ‘post’, ‘post-formats’, array( ‘aside’, ‘gallery’ ) );

}

// Replace the standard meta box callback with our own

add_action( ‘add_meta_boxes’, ‘wpse16136_add_meta_boxes’ );

function wpse16136_add_meta_boxes( $post_type )

{

if ( ! get_post_type_object( $post_type ) ) {

// It’s a comment or a link, or something else

return;

}

remove_meta_box( ‘formatdiv’, $post_type, ‘side’ );

add_meta_box( ‘wpse16136_formatdiv’, _x( ‘Format’, ‘post format’ ), ‘wpse16136_post_format_meta_box’,

$post_type, ‘side’, ‘core’ );

}

// This is almost a duplicate of the original meta box

function wpse16136_post_format_meta_box( $post, $box ) {

if ( current_theme_supports( ‘post-formats’ ) && post_type_supports( $post->post_type, ‘post-formats’

) ) :

$post_formats = get_theme_support( ‘post-formats’ );

// This is our extra code

// If the post type has registered post formats, use those instead

if ( is_array( $GLOBALS[$post->post_type] ) ) {

$post_formats = $GLOBALS[$post->post_type];

}

if ( is_array( $post_formats[0] ) ) :

$post_format = get_post_format( $post->ID );

if ( !$post_format )

$post_format = ‘0’;

$post_format_display = get_post_format_string( $post_format );

// Add in the current one if it isn’t there yet, in case the current theme doesn’t support it

if ( $post_format && !in_array( $post_format, $post_formats[0] ) )

$post_formats[0][] = $post_format;

?>

<div id=”post-formats-select”>

<input type=”radio” name=”post_format” class=”post-format” id=”post-format-0″ value=”0″ <?php

checked( $post_format, ‘0’ ); ?> /> <label for=”post-format-0″><?php _e(‘Standard’); ?></label>

<?php foreach ( $post_formats[0] as $format ) : ?>

<input type=”radio” name=”post_format” class=”post-format” id=”post-format-<?php echo

esc_attr( $format ); ?>” value=”<?php echo esc_attr( $format ); ?>” <?php checked( $post_format, $format

); ?> /> <label for=”post-format-<?php echo esc_attr( $format ); ?>”><?php echo esc_html(

get_post_format_string( $format ) ); ?></label>

<?php endforeach; ?>

</div>

<?php endif; endif;

}

重ね重ね、素晴らしく助けになるプラグインの開発本当に有難うございます。