仅在插件页面上排队管理员样式和脚本

时间:2019-02-11 作者:John Cook

我还在学习,所以如果我听起来有点困惑,请宽容我。顺便说一句,在我学习的时候有很多乐趣。

我正在创建一个带有特定于管理的JS和CSS的插件,但我不希望这些脚本和样式加载到管理区域的其他地方。我使用一个样板为我生成插件。

我正在加载的顶级页面是uwc。eg/wp管理/选项概述。php?页码=uwc

在admin文件夹/fluffy插件中。php我有这个。

class Fluffy_Plugin_Admin {

/**
 * The ID of this plugin.
 *
 * @since    1.0.0
 * @access   private
 * @var      string    $plugin_name    The ID of this plugin.
 */
private $plugin_name;

/**
 * The version of this plugin.
 *
 * @since    1.0.0
 * @access   private
 * @var      string    $version    The current version of this plugin.
 */
private $version;

/**
 * Initialize the class and set its properties.
 *
 * @since    1.0.0
 * @param      string    $plugin_name       The name of this plugin.
 * @param      string    $version    The version of this plugin.
 */
public function __construct( $plugin_name, $version ) {

    $this->plugin_name = $plugin_name;
    $this->version = $version;

}

/**
 * Register the stylesheets for the admin area.
 *
 * @since    1.0.0
 */
 public function enqueue_styles() {

    /**
     * This function is provided for demonstration purposes only.
     *
     * An instance of this class should be passed to the run() function
     * defined in Fluffy_Plugin_Loader as all of the hooks are defined
     * in that particular class.
     *
     * The Fluffy_Plugin_Loader will then create the relationship
     * between the defined hooks and the functions defined in this
     * class.
     */

     wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . \'css/fluffy-plugin-admin.css\', array(), $this->version, \'all\' );

 }


/**
 * Register the JavaScript for the admin area.
 *
 * @since    1.0.0
 */
public function enqueue_scripts() {

    /**
     * This function is provided for demonstration purposes only.
     *
     * An instance of this class should be passed to the run() function
     * defined in Fluffy_Plugin_Loader as all of the hooks are defined
     * in that particular class.
     *
     * The Fluffy_Plugin_Loader will then create the relationship
     * between the defined hooks and the functions defined in this
     * class.
     */
    wp_enqueue_script( $this->plugin_name, plugin_dir_url( __FILE__ ) . \'js/wp-color-picker-script.js\', array( \'wp-color-picker\' ), false, true );


}

}
附言:你可能需要ELI5

1 个回复
SO网友:dazunE

您可以使用$screen = get_current_screen(); 函数获取当前屏幕,并使用if条件将扭曲您的排队方法添加到检查屏幕的队列中。

https://codex.wordpress.org/Function_Reference/get_current_screen

public function enqueue_scripts() {

$screen = get_current_screen();

  // Check screen base and page
  if ( \'options-general\' === $screen->base && $_GET[\'page\'] ===\'uwc\' )
 {
    wp_enqueue_script( $this->plugin_name, plugin_dir_url( __FILE__ ) . \'js/wp-color-picker-script.js\', array( \'wp-color-picker\' ), false, true );

 } 
}

相关推荐