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,它仍会设置版本号。
答案 0 :(得分:1)
是的,这是有道理的。
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' );
}