【问题标题】:Wordpress: Load custom CSS for specific plugin admin PageWordpress:为特定插件管理页面加载自定义 CSS
【发布时间】:2018-03-01 10:45:41
【问题描述】:

我正在学习 Wordpress,我想为我的插件的特定管理页面加载自定义 CSS。我在 Wordpress Plugin API 上阅读并执行以下操作:

//I ADD MY OPTION PAGES
add_action( 'admin_menu', 'my_plugin_menu' );
function my_plugin_menu() {
    add_menu_page( 'My option page', 'My plugin', 'manage_options', 'my-fist-slug', 'my_first_func', 'dashicons-star-empty');
    add_submenu_page('my-fist-slug', 'General Setting', 'General', 'manage_options', 'my-fist-slug', 'my_first_func');
    add_submenu_page('my-fist-slug'', 'Some else options', 'Some options', 'manage_options', 'my-second-slug', 'my_second_func');
}

我只想为我的选项页面加载我的 CSS,然后我这样做:

add_action('admin_enqueue_scripts', 'ln_reg_css_and_js');
function ln_reg_css_and_js($hook)
{
    if($hook != 'my-first-slug'){
        return;
    }

    wp_enqueue_style('boot_css', plugins_url('inc/bootstrap.css',__FILE__ ));
    wp_enqueue_script('boot_js', plugins_url('inc/bootstrap.js',__FILE__ ));
    wp_enqueue_script('ln_script', plugins_url('inc/main_script.js', __FILE__), ['jquery'], false, true);
}

这与 WP codex 具有相同的代码。但是,我不知道如何定义$hook,结果是我的自定义 css 没有加载。任何人都可以教我如何做到这一点?

【问题讨论】:

标签: wordpress


【解决方案1】:
add_action('admin_enqueue_scripts', 'ln_reg_css_and_js');

    function ln_reg_css_and_js($hook)
    {

    $current_screen = get_current_screen();

    if ( strpos($current_screen->base, 'my-fist-slug') === false) {
        return;
    } else {

        wp_enqueue_style('boot_css', plugins_url('inc/bootstrap.css',__FILE__ ));
        wp_enqueue_script('boot_js', plugins_url('inc/bootstrap.js',__FILE__ ));
        wp_enqueue_script('ln_script', plugins_url('inc/main_script.js', __FILE__), ['jquery'], false, true);
        }
    }

【讨论】:

    【解决方案2】:

    您也可以在特定插件页面上包含 CSS :)

    //Enqueue Admin CSS on Job Board Settings page only
    if ( isset( $_GET['page'] ) && $_GET['page'] == 'job-board-settings' ) {
        // Enqueue Core Admin Styles
        wp_enqueue_style( simple_job_board, plugin_dir_url( __FILE__ ) . 'css/simple-job-board-admin.css');
        }
    

    【讨论】:

      【解决方案3】:
      function load_custom_wp_admin_style($hook) {
              // $hook is string value given add_menu_page function.
              if($hook != 'toplevel_page_mypluginname') {
                      return;
              }
              wp_enqueue_style( 'custom_wp_admin_css', plugins_url('admin-style.css', __FILE__) );
      }
      add_action( 'admin_enqueue_scripts', 'load_custom_wp_admin_style' );
      

      更多信息请见:Codex examples

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多