カスタム投稿タイプにsupports
パラメータを追加しようとしていますが、機能していないため、編集ページが空白になります。
add_action( 'init', 'create_post_type' );
function create_post_type() {
register_post_type( 'my_campaigns',
array(
'labels' => array(
'name' => __( 'Campaigns' ),
'singular_name' => __( 'Campaign' )
),
'supports' => array(
'title' => true,
'editor' => true,
'thumbnail' => true ),
)
);
}
'supports' => [ 'title', 'editor', 'thumbnail' ]
- キーではなく異なる値を使用してください。
register_post_type()
を調べると、次の行が見つかります。
if ( ! empty( $args->supports ) ) {
add_post_type_support( $post_type, $args->supports );
unset( $args->supports );
} elseif ( false !== $args->supports ) {
// Add default features
add_post_type_support( $post_type, array( 'title', 'editor' ) );
}
add_post_type_support()
では、値がtrue
という値を持つ配列キーに変換されることがわかります。
function add_post_type_support( $post_type, $feature ) {
global $_wp_post_type_features;
$features = (array) $feature;
foreach ($features as $feature) {
if ( func_num_args() == 2 )
$_wp_post_type_features[$post_type][$feature] = true;
else
$_wp_post_type_features[$post_type][$feature] = array_slice( func_get_args(), 2 );
}
}
register_post_type()
はちょうど2つの引数でadd_post_type_support()
を呼び出しているので、後者の関数のelse
には到達できません。
ただし、add_post_type_support()
を直接呼び出してカスタムサポート機能を渡すことはできます。
add_post_type_support(
'my_campaigns',
'subheadline',
[
'min_length' => 30,
'max_length' => 300,
]
);
しかし、それからあなたは別々にそれぞれの機能のために関数を呼ばなければなりません。
注意:'name' => __( 'Campaigns' )
は使用しないでください。テキストドメインがないと、この文字列はまったく翻訳できませんが、WordPressのデフォルトの翻訳の検索を引き起こします。詳しくは あなたのプラグインを国際化する方法 をご覧ください。