2017-06-22 22 views
1

我試圖排隊一個樣式表,我在有這個電流通路的工作我的管理插件PAGE電泳文件,排隊WordPress的插件管理樣式表在其他目錄(上一)

\plugins\my-plugin-name\includes\fileiamworkingon.php 

所有我找要做的就是排隊,坐在從上一級目錄我目前在一個樣式表。這個樣式表的路徑是像這樣,

\plugins\my-plugin-name\css\styles.css 

我公司目前已經通過調用我的班內添加動作掛鉤工作像這樣的構造函數:

add_action('admin_enqueue_scripts', array($this, 'pluginStyles'));

正如你所看到的,然後調用,我執行下面的代碼pluginStyles功能,

public function pluginStyles() { 
    wp_register_style('my_plugin_stylesheet', plugin_dir_url(__FILE__) . '../css/styles.css'); 
    wp_enqueue_style('my_plugin_stylesheet'); 
} 

目前,這是我能得到它,因爲補充說一點的唯一方法微妙的'../'到文件路徑。否則,它會嘗試從'includes'目錄中訪問css文件夾,這顯然不存在css文件夾。

這似乎不是最好的解決方案,也許有更多的「Wordpress方式」來解決這個問題。

回答

3

這是我在過去所做的那樣 - 定義一個常量在主\plugins\my-plugin-name\my-plugin-name.php文件:

/** Define plugin path constant */ 
if (!defined('PLUGIN_PATH')) { 
    define('PLUGIN_PATH', plugin_dir_url(__FILE__)); 
} 

而排隊在你\includes\fileiamworkingon.php文件:

/** Enqueue from any other file in the plugin directory */ 
wp_register_style('my_plugin_stylesheet', PLUGIN_PATH . 'css/styles.css'); 
wp_enqueue_style('my_plugin_stylesheet'); 
+0

添加'../'時纔有效。謝謝您的解決方案。我現在仍在審視事情。 –

+0

這對我不起作用,但我可能會錯誤地使用它。我完全改寫了我的問題以及新的細節,因爲我覺得它缺乏。 –

+0

似乎我在代碼中犯了一個小錯誤。我剛剛編輯了''plugin_dir_url'而不是'plugin_dir_path'。 – Hollings

1

你可以使用plugin_dir_url(__FILE__);

所以,你應該能夠通過這種方式註冊您的樣式表插件目錄路徑:

function my_plugin_scripts() { 
    wp_register_style('my_plugin_stylesheet', plugin_dir_url(__FILE__) . 'my-plugin-name/css/styles.css'); 
    wp_enqueue_style('my_plugin_stylesheet'); 
} 
add_action('wp_enqueue_scripts', 'my_plugin_scripts'); 
+0

謝謝你的解決方案。我現在仍在審視事情。 –

+0

我用你的解決方案大部分時間都在那裏,但是如果你看到了,我會重新考慮我的問題,因爲我覺得它非常平淡(並且沒有真正解釋我做得很好)。我現在正在工作,但是如果您看到我的問題編輯,只有在向路徑 –

0

請嘗試以下的 'fileiamworkingon.php':

wp_enqueue_style('styles', plugin_dir_path() . '../css/styles.css', array(), null); 

的 '../' 你會搬回目錄。

+0

這可能不是要走的路,你是否從WP文檔中獲得了這個結果? –

+0

此外,只是想讓你知道,複製和粘貼最終在我的代碼嘗試從路徑「sitename.com/css/styles.css」加載styles.css文件。 –

+0

是的,我從WordPress文檔中獲得它。 –