有两种方法可以做到这一点。
注册设置时,可以使用capability
:
$wp_customize->add_setting(
\'display_excerpt_or_full_post\',
array(
\'capability\' => \'edit_theme_options\',
\'default\' => \'excerpt\',
\'sanitize_callback\' => function( $value ) {
return \'excerpt\' === $value || \'full\' === $value ? $value : \'excerpt\';
},
)
);
注册控件时,可以使用
render_callback
用于确定是否显示控件的参数:
$wp_customize->add_control( \'checkin[theme]\', array(
\'label\' => __(\'Theme\', \'greet\'),
\'section\' => \'checkin\',
\'type\' => \'select\',
\'choices\' => array(
\'theme-1\' => \'Background\',
\'theme-2\' => \'Stars (Live)\',
\'theme-3\' => \'Gradient (Live)\',
),
),
\'render_callback\' => function() {
return current_user_can( \'edit_posts\' );
},
);
请注意,这些是完全不同的。使用
capability
设置中的参数将完全跳过控件,并且不会将其添加到自定义程序API中。使用
render_callback
参数时,控件仍将添加到自定义程序中,并且它将从API中可用,只是将其隐藏。如果隐藏(但仍在API中公开),我可以打开控制台并执行此操作以显示它-即使您已隐藏它:
wp.customize.control( \'checkin[theme]\' ).activate()