wp_enqueue_script 在文件路径中包含插件目录太早
wp_enqueue_script includes plugin directory too soon in filepath
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' returns 如下:
/Applications/AMPPS/www/wpplugin/wp-content/plugins/dontwaste/styles/dontwaste_styles.css
这正是我到达 css 文件所需的路径。
但是上面的代码 returns this 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 资产是使用它们的 URI(或 URL)加载的,而不是服务器目录上的路径。因为它们加载在前端。所以它会像 yoursite.com/wp-content/plugins/your-plugin/js/your-asset.js
所以你不能使用:
plugin_dir_path( __FILE__ )
您必须使用:
plugin_dir_url( __FILE__ )
第一个用于在您的插件文件中加载的文件(服务器端)。就像一个require_once。第二个如果用于在用户端加载的资产。
因此,您可以这样做:
// 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' );
}
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' returns 如下:
/Applications/AMPPS/www/wpplugin/wp-content/plugins/dontwaste/styles/dontwaste_styles.css
这正是我到达 css 文件所需的路径。
但是上面的代码 returns this 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 资产是使用它们的 URI(或 URL)加载的,而不是服务器目录上的路径。因为它们加载在前端。所以它会像 yoursite.com/wp-content/plugins/your-plugin/js/your-asset.js
所以你不能使用:
plugin_dir_path( __FILE__ )
您必须使用:
plugin_dir_url( __FILE__ )
第一个用于在您的插件文件中加载的文件(服务器端)。就像一个require_once。第二个如果用于在用户端加载的资产。
因此,您可以这样做:
// 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' );
}