首先,我尝试过这个并没有奏效:“https://wordpress.stackexchange.com/questions/89494/how-to-enqueue-the-style-using-wp-enqueue-style/89495#89495”。
我想要做的是一个带有唯一页面的插件(选项页面),我试图在头部标记<link href="my_dir/css/style.css"/>
中插入。我的插件的前缀是easydm,并在主文件中包含以下代码:
define( 'EASYDM_VERSION', '1.0' );
define( 'EASYDM__MINIMUM_WP_VERSION', '2.1' );
define( 'EASYDM_DIRECTORY_NAME', 'easy-downloader-manager/' );
define( 'EASYDM_ROOT_DIRECTORY', substr( plugin_dir_path( __FILE__ ), 0, strpos( plugin_dir_path( __FILE__ ), EASYDM_DIRECTORY_NAME ) ) );
define( 'EASYDM_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
define( 'EASYDM_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
define( 'EASYDM_SETTINGS_URL', plugin_dir_url( __FILE__ ).'settings/' );
define( 'EASYDM_SETTINGS_DIR', plugin_dir_path( __FILE__ ).'settings/' );
define( 'EASYDM_SETTINGS_PATH', 'settings/' );
define( 'EASYDM_CSS_URL', plugin_dir_url( __FILE__ ).'css/' );
define( 'EASYDM_CSS_DIR', plugin_dir_path( __FILE__ ).'css/' );
define( 'EASYDM_CSS_PATH', 'css/' );
require_once EASYDM_SETTINGS_DIR.'easydm-functions.php';
register_activation_hook( __FILE__, 'easydm_activation');
add_action( 'wp_enqueue_scripts', 'easydm_add_link_tag_to_head' );
我的easydm-functions.php有:
function easydm_add_link_tag_to_head() {
wp_enqueue_style( 'style', get_plugin_directory_uri().'/'.EASYDM_DIRECTORY_NAME.EASYDM_CSS_PATH.'style.css' );
}
这是我的最后一次尝试,但我在wp_enqueue_style()函数上尝试了其他一些参数。
一些帮助?
由于
---编辑---
这是一种可能的解决方法。实际上,我部分地解决了这个问题。现在我需要剪切一个附加到我的链接的字符串。见:
---再次编辑---
我发现这个http://wpcrux.com/wordpress-enqueue-functions-version/是什么解决了上面的新问题...但仍然没有设置我的页面样式...我检查了路径是否正确,我的文件是否存在,是否为空或任何类似这样的错误
有什么想法吗?
答案 0 :(得分:1)
感谢您的分享。我在添加一些样式和脚本时遇到了同样的问题,但我认为你指出的问题不应该是根本原因,实际上,我的问题是我应该将它添加到wp_enqueue_scripts中,如下所示
add_action('wp_enqueue_scripts','nz_footer_cumstom_func');
我尝试了你的解决方案,我认为两者都可行。我的意思是wp_enqueue_style()可以接受相对路径以及完整文件路径。
答案 1 :(得分:0)
解决!!!
wp_enqueue_style
函数的文档很清楚地说第二个参数是根安装WordPress的相对路径。但是当我使用完整路径查看教程中的许多示例时,我忽略了它。现在,定义此常量和所有先前的步骤一切正常。
define( 'EASYDM_CSS_PATH' , str_replace( site_url().'/', '', plugin_dir_url( __FILE__ ) ).'css/' );
并且在功能中:
wp_enqueue_style( 'easydm-style', '/'.EASYDM_CSS_PATH.'style.css', array(), null, 'all' );
所以,如果有人厌倦了寻找并且不想阅读所有讨论,最终的代码是:
define( 'EASYDM_CSS_PATH' , str_replace( site_url().'/', '', plugin_dir_url( __FILE__ ) ).'css/' );
add_action( 'admin_enqueue_scripts', 'easydm_add_link_tag_to_head' );
函数文件:
function easydm_add_link_tag_to_head() {
wp_enqueue_style( 'easydm-style', '/'.EASYDM_CSS_PATH.'style.css', array(), null, 'all' );
wp_enqueue_style( 'easydm-manager', '/'.EASYDM_CSS_PATH.'manager.css', array(), null, 'all' );
}
我添加了两种样式。我真的希望这能有所帮助。谢谢大家!