高级用法

自定义API正在积极开发,通过搜索Slack#core-customize频道的存档,可以找到更多关于高级话题的讨论。

允许非管理员访问定制器

定制器的访问是由定制器meta能力(默认映射到edit_theme_options)控制的,默认情况下,它只分配给管理员。这允许更广泛地使用定制器的广泛能力--访问选项,这些选项被内置到面板、板块和设置中。此外,这使得允许非管理员使用定制器,例如,自定义文章。这一变化是朝着将定制器的范围扩大到主题以外的一个重要步骤。

function allow_users_who_can_edit_posts_to_customize( $caps, $cap, $user_id ) {
  $required_cap = 'edit_posts';
  if ( 'customize' === $cap && user_can( $user_id, $required_cap ) ) {
    $caps = array( $required_cap );
  }
  return $caps;
}
add_filter( 'map_meta_cap', 'allow_users_who_can_edit_posts_to_customize', 10, 3 );

注意,如果你要授予非管理员用户定制meta的能力,目前有必要在管理菜单、管理栏或其他地方手动添加定制器的链接。