【问题标题】:Insert Gridster into WordPress template将 Gridster 插入 WordPress 模板
【发布时间】:2016-01-04 14:00:53
【问题描述】:

我的 WordPress 插件有问题,我想将 Gridster 插入插件,但它不起作用。

这里我正在加载正确位于文件夹中的文件。

function add_my_stylesheet() 
{
    wp_enqueue_style( 'myCSS', plugins_url( '/css/bootstrap.css', __FILE__ ), false );
    wp_enqueue_style("gridster-style", plugins_url( '/css/jquery.gridster.min.css', __FILE__ ), false );
}
add_action('admin_print_styles', 'add_my_stylesheet');



function add_my_scripts()
{
    //I tried wp_register_script as well as wp_enqueue_script
    wp_register_script( "jquery-gridster", plugins_url( '/js/jquery.min.js', __FILE__ ) );
    wp_register_script( "gridster-script", plugins_url( '/js/jquery.gridster.min.js', __FILE__  ) );
    wp_register_script( "gridster-script-extra",  plugins_url(      '/js/jquery.  gridster.with-extras.min.js', __FILE__ ) );

}
add_action( 'wp_register_scripts', 'add_my_scripts' );

这是预期输出的代码示例,当然也不行。

echo'

<section class="demo">
        <div class="gridster">
            <ul>
                <li class="bg-blue" data-row="1" data-col="1" data-sizex="1" data-sizey="1">Box1</li>
                <li class="bg-pink" data-row="1" data-col="2" data-sizex="1" data-sizey="1">Box2</li>
                <li class="bg-pink" data-row="1" data-col="3" data-sizex="1" data-sizey="2">Box3</li>
            </ul>
        </div>
    </section>

    <script type="text/javascript">
  var gridster;

  $(function() {
      gridtster = $(".gridster > ul").gridster({
          widget_margins: [10, 10],
          widget_base_dimensions: [140, 140],
          min_cols: 6
      }).data("gridster");
  });
</script>';

我尝试将它包含在模板的头文件和插件中,但它只显示文本,我无法拖放它们。

【问题讨论】:

  • 您是否曾经将这些脚本排入队列?看起来你只是在注册它们......
  • 是的,我只是尝试注册它们,因为我认为它会有所帮助。
  • 注册脚本实际上不会将它们包含在您的页面中...您应该使用wp_enqueue_script()wp_enqueue_scripts 操作挂钩

标签: javascript php jquery wordpress gridster


【解决方案1】:

迈克尔 - 又是一个好问题!

WordPress 很棒,但它的工作方式有一些技巧/细微差别。

首先,注册脚本很有用(例如,如果您想localize 它,或者您可能(或可能不)想在页脚中输出它(使用单独的print_scripts),但是,它不会将脚本输出到标记上。

此外,根据您注册它们的位置(在 wp_register_script 挂钩中),您可能还想更改它。

如果您只想将脚本输出到页面标记,请按如下方式修改您的代码:

function add_my_scripts()
{
    // proper way to include jQuery that is packaged with WordPress
    wp_enqueue_script('jquery');
    // Do not EVER include your own jquery.  This will cause all sorts of problems for the users of your plugin!
    // wp_enqueue_script( "jquery-gridster", plugins_url( '/js/jquery.min.js', __FILE__ ) );
    // you need enqueue here.  ALSO note the use of the $dependencies parameter - this plugin relies on jquery, so be sure to include that as a dependency!
    wp_enqueue_script( "gridster-script", plugins_url( '/js/jquery.gridster.min.js', __FILE__  ), array('jquery') );
    wp_enqueue_script( "gridster-script-extra",  plugins_url(      '/js/jquery.  gridster.with-extras.min.js', __FILE__ ), array('gridster-script') );

}
// and you need to hook the enqueue action here...
add_action( 'wp_enqueue_scripts', 'add_my_scripts' );

请注意,如果这对您不起作用,下一步是查看呈现的源并查看发生了什么。如果您发现这不起作用,请告知:

  1. 您是否尝试在前端、管理仪表板或两者上执行此操作?
  2. &lt;head&gt; 标记内呈现的确切 html 是什么?
  3. 如果输出了 url,但它不正确,那么我们遇到了不同的问题 - 如果正确,请告知。请注意,当您“查看源代码”时,通常可以在“查看源代码”视图中单击指向脚本的链接,并且您可以立即查看脚本文件是否正在加载(因为当您单击链接时,您会看到脚本代码),或者不会(因为您会看到 404 错误页面的标记)。
  4. 最后,您可以尝试删除依赖项。有时我在使用它们时遇到了一些有趣的问题,这将是我会摆弄的东西。

【讨论】:

  • 请注意...wp_enqueue_script('jquery'); 是多余的,因为它作为依赖项包含在其他脚本中。
  • @mevius - 是的,但我正在尝试教 Michael 将 jQuery 加入队列的正确方法,所以我已经明确地将其作为示例/模型供他将来使用。
  • 非常感谢,这对我有帮助 :) 现在我可以在前端和后端拖放框了。 @cale_b 您的回答总是很有帮助且足够详细,易于理解,谢谢。
  • 迈克尔,如果您希望我帮助/查看一个问题,只需对您的问题发表评论并@cale_b 我​​就可以了 - 我很乐意看看。
  • @cale_b 我​​看到代码只适用于前端。我尝试了您可以相信的一切,最后我尝试输出一条简单的消息,以确保 jQuery 正常工作,但没有任何反应,我认为脚本没有加载,但还有什么问题?顺便问一下,你有 WhatsApp 吗?
猜你喜欢
  • 1970-01-01
  • 2017-12-04
  • 1970-01-01
  • 2015-05-02
  • 1970-01-01
  • 2020-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多