gpt4 book ai didi

css - wp_enqueue_script 在文件路径中过早包含插件目录

转载 作者:太空宇宙 更新时间:2023-11-04 09:35:10 24 4
gpt4 key购买 nike

public function setup(){
//...
add_action( 'wp_enqueue_scripts', array( $this, 'register_plugin_styles' ) );
}

function register_plugin_styles(){
wp_register_style( 'dontwaste', JSC_DONT_WASTE . '/styles/dontwaste_styles.css' );
wp_enqueue_style( 'dontwaste', false, null, null );
}

JSC_DONT_WASTE 是插件目录的路径,所以 JSC_DONT_WASTE 。 '/styles/dontwaste_styles.css' 返回以下内容:

/Applications/AMPPS/www/wpplugin/wp-content/plugins/dontwaste/styles/dontwaste_styles.css

这正是我需要到达我的 css 文件的路径。

但是上面的代码返回了这个 NOT FOUND 错误:

http://127.0.0.1/wpplugin/Applications/AMPPS/www/wpplugin/wp-content/plugins/dontwaste/styles/dontwaste_styles.css?ver=4.6.1 404 (Not Found)

您会注意到一开始在 localhost 之后有一个/wpplugin/(插件文件夹的名称)。我如何摆脱它并获得工作路径?

还有版本号,即使我设置为 NULL,它仍然设置版本号。

最佳答案

是的,这是有道理的。

Javascript 和 CSS Assets 是使用它们的 URI(或 URL)加载的,而不是服务器目录上的路径。因为它们加载在前端。所以它将类似于 yoursite.com/wp-content/plugins/your-plugin/js/your-asset.js

所以你不能使用:

plugin_dir_path( __FILE__ )

你必须使用:

plugin_dir_url( __FILE__ )

第一个用于在您的插件文件中加载的文件(服务器端)。就像 require_once 一样。第二个如果用于在用户端加载的 Assets 。

因此,你可以这样做:

// For the files called in your php : 
if ( ! defined( 'PLUGIN_DIR' ) ) {
define( 'PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
}
// For the assets files loaded on the client side :
if ( ! defined( 'PLUGIN_ASSETS_URL' ) ) {
define( 'PLUGIN_ASSETS_URL', plugin_dir_url( __FILE__ ).'/assets' );
}

关于css - wp_enqueue_script 在文件路径中过早包含插件目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40407763/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com