WordPress 5.4添加了一些针对开发人员的小型更改。让我们来看看!
wp_login_failed 将返回更多信息
wp_login_failed
钩子中传递了一个新参数 $error
,以获取有关导致登录失败的错误的更多信息。
它是钩子的第二个参数,它包含一个WP_Error
带有身份验证失败详细信息的对象。
在wp-includes/pluggable.php
以下位置可以找到它:
/**
* Fires after a user login has failed.
*
* @since 2.5.0
* @since 4.5.0 The value of `$username` can now be an email address.
* @since 5.4.0 The `$error` parameter was added.
*
* @param string $username Username or email address.
* @param WP_Error $error A WP_Error object with the authentication failure details.
*/
do_action( 'wp_login_failed', $username, $error );
在Trac上查看相关内容:#49007
多站点:将站点ID添加到newblog_notify_siteadmin过滤钩子
newblog_notify_siteadmin
过滤钩子中传递了一个新参数,即网站ID,以帮助您根据网站ID来自定义网站管理员通知。
在wp-includes/ms-functions.php
以下位置可以找到它:
/**
* Filters the message body of the new site activation email sent
* to the network administrator.
*
* @since MU (3.0.0)
* @since 5.4.0 The `$blog_id` parameter was added.
*
* @param string $msg Email body.
* @param int$blog_id The new site's ID.
*/
$msg = apply_filters( 'newblog_notify_siteadmin', $msg, $blog_id );
有关更多信息,请参见:#48554
新增TikTok视频嵌入
WordPress 5.4引入了TikTok作为新的oEmbed提供程序。
从5.4版开始,WordPress将识别遵循以下模式的TikTok视频URL:
'#https?://(www\.)?tiktok\.com/.*/video/.*#i'
TikTok支持还附带了自己的编辑器块。
另外,TikTok可以在“块”和“经典”编辑器,“文本”小工具中以及在您现在可以使用“嵌入”的其他任何位置嵌入作品。
有关更多信息,请参见:
删除了CollegeHumor视频嵌入
由于CollegeHumor服务不再存在,其oEmbed提供程序已从WordPress 5.3.1中的核心中删除。
在5.4版中,该服务现已完全脱离WordPress,并且已弃用了相应的Gutenberg Embed块。为了向后兼容,现有的CollegeHumor块将自动转换为通用嵌入块。
更多信息,请参阅:
媒体:将附件的原始URL存储在_source_url 文章meta中
当您用media_sideload_image
从URL旁载文件时,原始URL现在会自动存储为元数据。
您还可以用media_sideload_image
用来存储文件的本地副本。
这样就非常棒。首先,为了版权和公平起见,存储源URL为您提供了一种简单的方法来查找该文件的原始托管位置。此外,您可以查询现有附件,而不会两次将相同文件侧载。
附件的原始URL存储在_source_url
文章meta中:
add_post_meta( $id, '_source_url', $file );
要了解更多信息,请参阅:#48164
可访问性:管理栏现在可用wp_body_open加载
页面外观应与其加载顺序匹配,这是可访问性的首要原则。长期以来,这一直是WordPress一直坚持的原则。
目前,顶部管理栏一直都是加载到wp_footer
钩子:
add_action( 'wp_footer', 'wp_admin_bar_render', 1000 );
在WordPress 5.4中,管理栏会加载到 wp_body_open
(自WP 5.2起新增)钩子中,并修复了加载顺序问题:
add_action( 'wp_body_open', 'wp_admin_bar_render', 0 );
当然,某些较旧的主题尚不支持wp_body_open
函数。为此,我们在wp_footer
函数中添加了兼容:
function wp_footer() {
/*
* Sets up the Admin Bar if the current theme does not use `wp_body_open`.
* @since 5.4.0
*/
if ( ! did_action( 'wp_body_open' ) ) {
add_action( 'wp_footer', 'wp_admin_bar_render', 1000 );
}
}
更多信息,请访问:#47053
小工具:在最近评论中避免重复的ID
在WordPress 5.4中,“最近评论”小工具将不再生成具有相同HTML ID的小工具。
即使在同一个页面很少可能有多个“最近评论”小工具实例,也请主题作者避免使用在<ul>
元素上应用的ID来设置此小工具的样式,因为ID会因每个小工具实例的ID而不同。
更多信息,请访问:#46747
登录和注册:新参数传递给retrieve_password()中的lostpassword_post钩子
从WordPress 5.4开始,新的$user_data
参数将传递到 retrieve_password()
中的lostpassword_post
钩子中。
如果用户存在, $user_data
将返回相应的WP_User
对象。否则,参数将返回false
。
无论哪种方式,开发人员都有另一条信息要执行。
更多信息,请访问:#38334
主题标头支持“Requires at least”和“Requires PHP”声明
WordPress 5.4在主题中增加了对所需WordPress和PHP版本的支持。
邀请主题作者在其主要样式表style.css中声明以下标头项:
Requires PHP
:声明所需的最低PHP版本。
Requires at least
:声明所需的最低WordPress版本。
更多更改,请查看本站关于 WordPress 5.4 的文章: https://www.wpdaxue.com/tag/wordpress-5-4
多站点开启后,子站点注册会自动跳转到主站点上注册,而登录就不会,这算不算bug?
还有,应该搞个用户选择功能:任何站点只要注册了的用户 ,后台可以设置登录全站或者只能登录注册的站点