深入解析WordPress 6.5的新特性:字体库介绍

WordPress 6.5新增了字体库功能,使用户可以直接在编辑器里管理字体。此外,它还提供了一系列的API,这意味着开发者可以更灵活地控制和调整这项功能,甚至可以禁用它。

图片[1]-深入解析WordPress 6.5的新特性:字体库介绍-光子波动网 | 专业WordPress修复服务,全球范围,快速响应

字体集

字体集是一系列你可以通过编辑器添加到网站的字体。在theme.json中,这些字体系列被列为fontFamily项目。默认情况下,在WordPress 6.5中,用户可以选择添加Google的一组字体。为了符合GDPR规定,安装Google字体时,这些字体文件会被下载到你的WordPress服务器上。

一旦注册了字体集合,用户就能在编辑器的字体库界面中看到它。在这里,用户可以安装并开始使用集合中的字体。

图片[2]-深入解析WordPress 6.5的新特性:字体库介绍-光子波动网 | 专业WordPress修复服务,全球范围,快速响应

添加字体集

你可以使用wp_register_font_collection()函数来添加新的字体集。这个过程包括用PHP或JSON格式定义字体系列和它们的列表,然后把这些信息作为数组的一部分传递给函数。

下面是一个示例,展示了如何在PHP中添加字体集合:

$font_families = [

array(

'font_family_settings' => (

array (

'fontFamily' => 'Open Sans, sans-serif',

'slug' => 'open-sans',

'name' => 'Open Sans',

'fontFace' => (

array (

'fontFamily' => 'Open Sans',

'fontStyle' => 'normal',

'fontWeight' => '300',

'src' => 'https://fonts.gstatic.com/s/opensans/v40/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsiH0C4iY1M2xLER.woff2'

),

array (

'fontFamily' => 'Open Sans',

'fontStyle' => 'italic',

'fontWeight' => '400',

'src' => 'https://fonts.gstatic.com/s/opensans/v40/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk8ZkaVIUwaERZjA.woff2'

),

),

),

),

'categories' => [ 'sans-serif' ],

),

array(

'font_family_settings' => (

array (

'fontFamily' => 'Monoton, system-ui',

'slug' => 'monoton',

'name' => 'Monoton',

'fontFace' => (

array (

'fontFamily' => 'Monoton',

'fontStyle' => 'normal',

'fontWeight' => '400',

'src' => 'https://fonts.gstatic.com/s/monoton/v19/5h1aiZUrOngCibe4fkPBQ2S7FU8.woff2',

'preview' => 'https://s.w.org/images/fonts/17.7/previews/monoton/monoton-400-normal.svg'

),

),

)

),

'categories' => [ 'display' ],

),

array(

'font_family_settings' => (

array (

'fontFamily' => 'Arial, Helvetica, Tahoma, Geneva, sans-serif',

'slug' => 'arial',

'name' => 'Arial',

)

),

'categories' => [ 'sans-serif' ],

),

];

$categories = [

array(

'name' => _x( 'Display', 'Font category name' ),

'slug' => 'display',

),

array(

'name' => _x( 'Sans Serif', 'Font category name' ),

'slug' => 'sans-serif',

),

];

$config = array (

'name' => _x( 'My font collection', 'Font collection name' ),

'description' => _x( 'A collection of my favorite fonts.', 'Font collection description' ),

'font_families' => $font_families,

'categories' => $categories,

);

wp_register_font_collection ( 'my-font-collection', $config );

请注意,字体集合数组里的namedescription字段需要支持多语言翻译,你可以通过使用_x()函数来包裹这些文本实现这一点。通常,字体系列的名称是不需要翻译的。想了解更多信息,请查阅讨论#60509。

字体集合中的font_families字段可以使用本地路径或是指向JSON文件的远程URL来指定字体。

删除字体集

可以使用wp_unregister_font_collection()函数禁用字体集合。这是禁用默认字体集合的示例:

add_action( 'init', function() {

wp_unregister_font_collection( 'default-font-collection' );

} );

安装和激活字体

在WordPress中,你可以通过theme.json设置来配置字体。当你“安装”一个字体到你的网站,它的设置会被保存到数据库,这样任何主题都可以使用这个字体。

“激活”字体意味着它会被加入到主题的全局样式设置里。这样,新的字体就可以在网站的整体样式和单个块的设计中被使用了。

如果你换了一个新主题,你需要重新激活之前安装的字体,这样可以确保新主题的全局样式也会更新。如果你重置了主题的全局样式,所有之前安装的字体会被停用,但还会保留在网站上,你可以随时重新激活它们。

另外,字体库也允许你停用主题自带的字体,如果你不需要它们的话,这样可以帮助提高网站的加载速度。

自定义字体上传目录

默认情况下,上传的字体会保存到wp-content/fonts文件夹里。但是,你可以使用font_dir过滤器来改变这个保存位置,根据你的需求设定不同的目录。如果你的设置不允许修改wp-content目录,那么wp-content/uploads/fonts会被用作备用目录。

你可以用wp_get_font_dir()函数来找出字体上传目录的具体位置。

下面这个例子会把字体目录改到WordPress的“Uploads”目录里(通常是wp-content/uploads):

function alter_wp_fonts_dir( $defaults ) {

$wp_upload_dir = wp_get_upload_dir();

$uploads_basedir = $wp_upload_dir['basedir'];

$uploads_baseurl = $wp_upload_dir['baseurl'];

$fonts_dir = $uploads_basedir . '/fonts';

// Generate the URL for the fonts directory from the font dir.

$fonts_url = str_replace( $uploads_basedir, $uploads_baseurl, $fonts_dir );

$defaults['path'] = $fonts_dir;

$defaults['url'] = $fonts_url;

return $defaults;

}

add_filter( 'font_dir', 'alter_wp_fonts_dir' );

当你更改字体的上传位置时,请确保你选择的文件夹确实存在,并且具有正确的读写权限。

就像wp-content/uploads文件夹一样,设置用于字体上传的文件夹也不会受到wp_is_file_mod_allowedDISALLOW_FILE_MODS设置的影响,这意味着这些设置不会阻止字体的上传。

如何禁用字体库

默认情况下可通过编辑器访问字体库。

禁用用户界面

可以使用过滤器来禁用 UI 来自定义编辑器设置:

function disable_font_library_ui( $editor_settings ) {

$editor_settings['fontLibraryEnabled'] = false;

return $editor_settings;

}

add_filter( 'block_editor_settings_all', 'disable_font_library_ui' );

禁用REST API

unregister_post_type()函数可用于删除与字体库关联的帖子类型,并通过扩展 REST API:

add_action( 'init', function() {

unregister_post_type( 'wp_font_family' );

unregister_post_type( 'wp_font_face' );

} );


这样做可以让插件关闭字体库的功能,但同时保留界面,以管理当前主题所提供的字体。

新的 REST API

字体库功能新增了三个REST API端点:

  • wp/v2/font-collections:用于获取预定义的字体系列列表,也就是“集合”。
  • wp/v2/font-families:用于获取父字体系列的信息,这些系列通常包含一种或多种单个字体。
  • wp/v2/font-families/<id>/font-faces:用于获取字体系列中每种字体的详细信息。
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容