2016-11-03 3 views
0
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); 
} 

A._DONT_WASTE - это путь к каталогу плагинов, поэтому JSC_DONT_WASTE. «/styles/dontwaste_styles.css» возвращает следующее:wp_enqueue_script слишком скоро включится в папку с файлом.

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

и это именно путь мне нужно, чтобы достигнуть моего файла CSS.

Но приведенный выше код возвращает это НЕ НАЙДЕНО ошибка:

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) 

Вы заметите, в начале есть/wpplugin/(название папки плагина) сразу после локального сервера. Как мне избавиться от этого и получить путь к работе?

Существует также номер версии, который, хотя я установлен в NULL, по-прежнему устанавливает номер версии.

+1

ли работает это с 'plugin_dir_url (__FILE__) '/ стили/dontwaste_styles.css' вместо' JSC_DONT_WASTE'? – Benoti

ответ

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'); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^