【问题标题】:Wordpress load a stylesheet through pluginWordpress 通过插件加载样式表
【发布时间】:2014-03-12 15:36:22
【问题描述】:

我写了一个 WordPress 插件,想让它包含一些 css 样式表,我尝试使用我通常在主题 functions.php 文件中使用的过程...

add_action('wp_enqueue_script','register_my_scripts');

function register_my_scripts(){
    $dir = plugin_dir_path( __FILE__ );
    wp_enqueue_style( $dir . 'css/style1.css');
    wp_enqueue_style( $dir . 'css/style2.css');
}

但这并没有加载任何东西,我做错了什么?

【问题讨论】:

  • wp_enqueue_style('custom-style', plugins_url( '/css/my-style.css', __FILE__ ), array(),'all'); 其中plugins_url 是相对于没有斜线的插件库。
  • 我看到你的动作钩子'wp_enqueue_script'缺少's'字符。它是钩子动作,而不是函数,所以正确的必须是'wp_equeue_scripts' [1]。 [1]。 codex.wordpress.org/Plugin_API/Action_Reference/…

标签: php wordpress


【解决方案1】:

您正在使用plugin_dir_path 输出文件系统目录路径。相反,您需要 URL。

wp_enqueue_style 的第一个参数也是$handler 名称。

使用plugins_url

wp_enqueue_style( 'style1', plugins_url( 'css/style1.css' , __FILE__ ) );

完整代码:

add_action('wp_enqueue_scripts','register_my_scripts');

function register_my_scripts(){
    wp_enqueue_style( 'style1', plugins_url( 'css/style1.css' , __FILE__ ) );
    wp_enqueue_style( 'style2', plugins_url( 'css/style2.css' , __FILE__ ) );
}

【讨论】:

  • 它是 wp_enqueue_style( 'style2', plugins_url( 'css/style2.css' , dirname(__FILE__) ) );见:codex.wordpress.org/Function_Reference/plugins_url#Common_Usage
  • @luciole135 如果您在嵌套在插件目录的子目录中的文件中使用plugins_url() 函数,则应该使用dirname(__FILE__) 如果文件不在根目录中,则可以使用插件目录。
  • 是的,现在我使用 plugin_dir_url()
  • 此代码用于脚本,而不用于样式。
  • @DebbieKurth 你可以使用wp_enqueue_script 来注入脚本。
【解决方案2】:

使用插件 url 从 wp 插件文件夹加载样式

function add_plugin_stylesheet() 
    {
      wp_enqueue_style( 'style1', plugins_url( '/css/styleFileName1.css', __FILE__ ) );
      wp_enqueue_style( 'style2', plugins_url( '/css/styleFileName2.css', __FILE__ ) );
    }

    add_action('admin_print_styles', 'add_plugin_stylesheet');

【讨论】:

    【解决方案3】:

    试试:

    wp_enqueue_style('custom-style', plugins_url( '/css/my-style.css', __FILE__ ), array(),'all'); 其中plugins_url 是相对于没有斜杠的插件库。

    【讨论】:

      【解决方案4】:

      你需要使用的钩子是 wp_enqueue_scripts,你错过了's'。

      当您需要的是目录 URL 时,您将获得目录路径。

      wp_enqueue_style 的第一个参数是句柄而不是 URL。

      function wpse_load_plugin_css() {
          $plugin_url = plugin_dir_url( __FILE__ );
      
          wp_enqueue_style( 'style1', $plugin_url . 'css/style1.css' );
          wp_enqueue_style( 'style2', $plugin_url . 'css/style2.css' );
      }
      add_action( 'wp_enqueue_scripts', 'wpse_load_plugin_css' );
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-06-16
        • 2014-11-02
        • 1970-01-01
        • 2013-01-23
        • 1970-01-01
        • 1970-01-01
        • 2016-11-01
        • 1970-01-01
        相关资源
        最近更新 更多