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

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

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

字体集

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

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

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

添加字体集

你可以使用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:用于获取字体系列中每种字体的详细信息。

联系我们
文章看不懂?联系我们为您免费解答!免费助力个人,小企站点!
电话:020-2206-9892
QQ咨询:1025174874
邮件:info@361sale.com
工作时间:周一至周五,9:30-18:30,节假日休息
发布者:光子波动,转转请注明出处:https://www.361sale.com/6190/

(0)
上一篇 2024年 3月 21日 下午5:06
下一篇 2024年 3月 21日 下午6:28

相关推荐

  • Gutenberg 17.9 引入了新的默认颜色和布局预设,可应用于整个项目,使设计更具凝聚力。

    Gutenberg 17.9 已经发布了,和上一个版本一样,开发者们主要集中在完善即将发布的 WordPress 6.5 上,所以这个新版本的 Gutenberg 更多地关注的是提高稳定性和修复错误。下面我们会简要介绍一下新增的改进和功能。 记得,WordPress 6.5 现在正在准备最后阶段,任何在 Gutenberg 插件中修复的错误都会根据需要更新到…

    2024年 3月 20日
    0043
  • WordPress 6.5 版本对国际化(I18N)多语言翻译的性能进行了改进。

    WordPress 6.5 版本进行了多项国际化(i18n)方面的改进,本开发者说明将重点关注这些改进。 性能改进的本地化翻译系统 在过去的一年里,WordPress 的贡献者们认真研究了现有的国际化(i18n)系统的性能,并最终创建了一个名为“Performance Translations”的新功能插件。这个插件提供了一个经过彻底优化的系统,可以显著提高…

    2024年 3月 20日 WordPress
    0056
  • 如何高效使用wordpress循环与查询循环块优化网站内容展示

    什么是 WordPress 循环? WordPress 循环(The Loop)是 WordPress 中用于显示帖子和页面内容的主要 PHP 代码结构。它是一个 PHP 代码块,用于从数据库中检索帖子、页面和其他类型的内容并将其显示在 WordPress 网站上。 WordPress 循环的工作原理 WordPress 循环是一个核心功能,它使得当访问者浏…

    5天前 WordPress
    0011
  • WordPress 数据库深入解析:存储、检索与管理网站内容

    WordPress 使用数据库来存储、检索和显示你在网站上创建的所有内容。包括帖子、页面、评论等。 数据库还用于存储有关你网站用户的信息以及为您的网站提供支持的各种网站选项。 WordPress 使用名为MySQL 的数据库管理系统。 MySQL 是一个免费的开源数据库管理系统,许多流行的 Web 应用程序都使用它。 与你的 WordPress 数据库交互 …

    2024年 3月 30日 WordPress
    0050
  • WordPress 安全深度分析:了解其真实安全性

    WordPress 到底有多安全?很多新手可能会担心这个问题,特别是当他们听说 WordPress 是一个开源项目的时候。所以,有没有一些数据可以帮我们了解 WordPress 的安全性呢? 答案是肯定的。在这篇文章里,我们尽可能收集了一些关于 WordPress 安全性的重要数据和信息。我们会从 WordPress 的核心、主题和插件的安全性,到登录信息和…

    2024年 4月 5日 WordPress资讯
    0044

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

联系我们

020-2206-9892

QQ咨询:1025174874

邮件:info@361sale.com

工作时间:周一至周五,9:30-18:30,节假日休息

客服微信