我正在通过制作一个可以扩展它的单独插件来修改现有的WP插件。我想编写将覆盖插件的CSS。但是,当我尝试将样式表排入队列时,它不起作用。我知道它不起作用,因为我在includes()
中添加了一个简单的表单,并尝试将单词设置为红色,以便查看更改。为什么这不起作用?
注意 - 我正在使用动作挂钩plugins_loaded
,我在codex中读到wp_enqueue_script
之前。所以我不怀疑我的排队错过了时间,但我是WP开发新手,所以如果我错了,请纠正我。
更新 - 请参阅下面我更新的CSS代码。 #id选择器没有将文本red 单独着色,但是当我添加p(段落选择器)时,它有效。两个选择器都不能单独工作,只有在我添加两个选项器时才能工作。这是为什么?
找到-DO换anspress.php
if (! defined('WPINC')) {
die;
}
Class Find_Do_For_Anspress {
/**
* Class instance
* @var object
* @since 1.0
*/
private static $instance;
/**
* Get active object instance
*
* @since 1.0
*
* @access public
* @static
* @return object
*/
public static function get_instance() {
if ( ! self::$instance ) {
self::$instance = new Find_Do_For_Anspress(); }
return self::$instance;
}
/**
* Initialize the class
* @since 2.0
*/
public function __construct() {
if ( ! class_exists( 'AnsPress' ) ) {
return; // AnsPress not installed.
}
if ( ! defined( 'FIND_DO_FOR_ANSPRESS_DIR' ) ) {
define( 'FIND_DO_FOR_ANSPRESS_DIR', plugin_dir_path( __FILE__ ) );
}
if ( ! defined( 'FIND_DO_FOR_ANSPRESS_URL' ) ) {
define( 'FIND_DO_FOR_ANSPRESS_URL', plugin_dir_path( __FILE__ ) );
}
$this->includes();
add_action( 'wp_enqueue_scripts', array($this, 'fd_enqueue'));
}
private function includes() {
require_once (FIND_DO_FOR_ANSPRESS_DIR.'braintree/lib/braintree.php');
require_once (FIND_DO_FOR_ANSPRESS_DIR.'fd-braintree/fd-bt-keys.php');
require_once (FIND_DO_FOR_ANSPRESS_DIR.'fd-braintree/fd-process-trans.php');
require_once (FIND_DO_FOR_ANSPRESS_DIR.'fd-braintree/fd-bt-functions.php');
require_once (FIND_DO_FOR_ANSPRESS_DIR.'fd-braintree/fd-bt-form.php');
require_once (FIND_DO_FOR_ANSPRESS_DIR.'includes/fd-ask-form.php');
}
public function fd_enqueue() {
wp_enqueue_style( 'fd_for_anspress_css', FIND_DO_FOR_ANSPRESS_DIR.'css/fd-css.css', array(jquery), null); //handle, source, dependencies, version, media (the type of media for which the stylesheet is designed, e.g. mobile, web, print...)
//wp_enqueue_script( 'fd_for_anspress_js', FIND_DO_FOR_ANSPRESS_DIR.'fd-braintree/js/fd-braintree-js.js', array(), null); used require_once to directly add it to fd-bt-form.php
}
} //End class
function find_do_for_anspress() {
$FDClassStart = new Find_Do_For_AnsPress();
}
add_action( 'plugins_loaded', 'find_do_for_anspress' );
//HTML "testing" block
echo '<p id="checkout">Testing the enqueued CSS</p>';
fd-css.css尝试1
<style>
#checkout {
color: red;
}
</style>
fd-css.css尝试2
<style>
#checkout {
color: red;
}
p {
color: red;
}
</style>
答案 0 :(得分:0)
当您呼叫wp_enqueue_style
时,您将array(jquery)
作为依赖项传递。由于jquery
是一个无效的句柄(它应该用引号括起来),所以从不加载依赖项,因此你的样式表没有被加载
那就是说,你可能不希望CSS有任何依赖关系。如果要控制样式表的加载顺序,可以使用此选项,此处放置的任何句柄都将在脚本之前加载。如果句柄无效,您的脚本将无法加载。
wp_enqueue_style( 'fd_for_anspress_css', FIND_DO_FOR_ANSPRESS_DIR.'css/fd-css.css' );