【问题标题】:js file is not including in a theme in wordpressjs文件不包含在wordpress的主题中
【发布时间】:2014-05-15 07:37:20
【问题描述】:

我是 wordpress 的新手。我创建了一个插件,它工作正常。现在我改变了我的 wordpress 主题(创建了我自己的主题)。问题是插件中的js文件不包括主题是我的主题时。 js 文件包含在其他主题中。我应该怎么做才能解决这个问题。

我在插件首页中使用了以下代码来加载 Jquery

add_action('init', 'register_script');
function register_script() {
    wp_register_script( 'custom_jquery', plugins_url('/js/bootstrap.js', __FILE__), array('jquery'), '2.5.1' );
    wp_register_script( 'custom_jquery1', plugins_url('/js/jquery.min.js', __FILE__), array('jquery'), '2.5.1' );
    wp_register_script( 'cust_pluginjs1', plugins_url('/js/pluginjs.js', __FILE__), array('jquery'), '2.5.1' );
    wp_register_style( 'new_style', plugins_url('/css/style.css', __FILE__), false, '1.0.0', 'all');
    wp_register_style( 'new_style1', plugins_url('/css/bootstrap.css', __FILE__), false, '1.0.0', 'all');
    wp_register_style( 'new_style2', plugins_url('/css/font-awesome.css', __FILE__), false, '1.0.0', 'all');
    wp_localize_script( 'cust_pluginjs1', 'myAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' )));

}
add_action('wp_enqueue_scripts', 'enqueue_style');

function enqueue_style(){
   wp_enqueue_script('custom_jquery');
   wp_enqueue_script('custom_jquery1');
   wp_enqueue_script('cust_pluginjs1');
   wp_enqueue_style( 'new_style' );
   wp_enqueue_style( 'new_style1' );
    wp_enqueue_style( 'new_style2' );
}



.js 文件中使用的 Jquery 是

function domainsort(type)
{
  // jQuery.post('http://localhost/wptest/wp-admin/admin-ajax.php',data )
    jQuery.ajax({
                type: 'POST',
                url: myAjax.ajaxurl,
                data: {
                    action: 'sortfn',
                    sortId: type,

                },

                success:function(data){
                    if(data){
                     jQuery(".tablenpage").html(data);
                    }

                },
                error: function(MLHttpRequest, textStatus, errorThrown){
                    alert(errorThrown);
                }
            });
}

【问题讨论】:

  • 你在functions.php中加载了Jquery库吗?
  • @KeesSonnema 我已经在插件的第一页加载了 Jquery。我将使用该代码更新问题。
  • 你试过这个吗:if (typeof jQuery == 'undefined') { // alert something. }
  • 否,但在萤火虫中显示 ReferenceError: domainsort is not defined
  • 主题和插件中包含的 js 和 css 文件是相同的,除了这个 pluginjs.js 文件。但该插件在所有其他主题中都可以正常工作

标签: javascript php ajax wordpress


【解决方案1】:

您在这里完全注册/排队错误。您正在将脚本注册到您挂钩到init 的函数中,然后将它们排入另一个函数并将其挂钩到wp_enqueue_scripts

您应该将wp_register_script()wp_enqueue_script() 放在同一个函数中,然后该函数应连接到wp_enqueue_scripts

编辑

您绝不能使用init 挂钩将脚本或样式排入队列。正确使用的钩子是wp_enqueue_scripts

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多