Wordpress:为什么我的样式表没有排队?

时间:2015-10-31 01:25:02

标签: css wordpress override external-script

我正在通过制作一个可以扩展它的单独插件来修改现有的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>

1 个答案:

答案 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' );