当使用文件时间排队样式时,插件在前端抛出404

时间:2020-03-11 作者:Sam

我正在构建一个非常简单的插件,将社交媒体图标添加到我正在处理的网站的每个页面。

我希望以下代码在前端将样式表排队:

function myplugin_styles_scripts() {
   wp_enqueue_style( \'myplugin-style\', plugin_dir_path( __FILE__ ) . \'/css/style.css\', array(), filemtime( plugin_dir_path( __FILE__ ) . \'/css/style.css\' ) );
}
add_action( \'wp_enqueue_scripts\', \'myplugin_styles_scripts\' );
在前端,控制台中出现以下错误:

https://testing.local/app/public/wp-content/plugins/social-icons/css/style.css?ver=1583931475 网络::ERR\\u中止404

该目录和文件存在于我的插件中。这是什么原因?

1 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

你得到了404 错误,因为您没有提供CSS文件的正确URL地址。

这是因为第一个plugin_dir_path() 下面输出文件系统目录路径(例如。/home/user/var/www/wordpress/wp-content/plugins/my-plugin/):

wp_enqueue_style( \'myplugin-style\', plugin_dir_path( __FILE__ ) . \'/css/style.css\', array(), filemtime( plugin_dir_path( __FILE__ ) . \'/css/style.css\' ) );
所以你应该使用plugin_dir_url() 获取插件的URL目录路径(例如。http://example.com/wp-content/plugins/my-plugin/):

wp_enqueue_style( \'myplugin-style\', plugin_dir_url( __FILE__ ) . \'css/style.css\', array(), filemtime( plugin_dir_path( __FILE__ ) . \'/css/style.css\' ) );
请注意,这两个函数都包含尾部斜杠,因此在上面的代码中,我有意使用css/style.css 而不是/css/style.css. 否则,URL将包含//css/style.css (请注意两条斜线)。

相关推荐

Testing Plugins for Multisite

我最近发布了一个WordPress插件,它在单个站点上非常有效。我被告知该插件在多站点安装上不能正常工作,我理解其中的一些原因。我已经更新了代码,现在需要一种方法来测试更新后的代码,然后才能转到实时客户的多站点安装。我有一个用于测试的WordPress安装程序的单站点安装,但需要在多站点安装上进行测试。根据我所能找到的唯一方法是在网络上至少有两个站点来安装整个多站点安装,以测试我的插件。设置WordPress的整个多站点安装是插件开发人员的唯一/首选方式,还是有更快的测试环境可用。