Wordpress wp_enqueue_script我的函数未执行

时间:2018-03-08 23:43:03

标签: javascript wordpress

由于我在这里找到的关于如何使wp_enqueue_script适用于外部JS脚本的许多主题,我尝试了很多语法...

我的目标是影响一个类发布来自ecwd事件插件的元素,因为在使register_taxonomy_for_object_type工作并显示来自插件的帖子作为常规帖子受到常规类别影响后,仍然存在一个问题:帖子来自当在类别页面中显示时,插件不会以常规帖子样式显示。 我已经弄明白了这个课程" post"在这种情况下失踪了。 所以我试图添加这个类

但是我的脚本似乎没有启动。 我通过打印脚本文件源路径验证了我指向脚本文件的正确路径。 我把console.debug放在函数的开头,看看脚本是否已经启动但是没有在控制台中写入...

以下是代码:

在Theme function.php中:

function MAJ_Post_Class() {
    if( is_category() ) {
        $scriptSrc = get_template_directory_uri() . '/js/MAJ_ecwd_event_Post.js';
        print $scriptSrc;
        wp_register_script('Change_EcwdClass', $scriptSrc, array('jquery'),'1.4.1', true);
        wp_enqueue_script('Change_EcwdClass');
        print "Passe wp_enqueue_script" ;
    }
}
add_action( 'wp_enqueue_scripts', 'MAJ_Post_Class' );

在MAJ_ecwd_event_Post.js文件中:

(function ($) {
    function Change_EcwdClass() {
        console.debug("Try To Write");
        var elements = document.getElementsByClassName("ecwd_event");
        for (var i=0; i<elements.length; i++)
        {
          var el = elements[i];
          el.setAttribute( "class", el.getAttribute("class") + " post" );
          console.debug(el.getAttribute("class"));
        }
    }
});

我在这里想念的是什么?

1 个答案:

答案 0 :(得分:0)

根据cabrerahector的说法,函数的调用只是缺失,但不仅如此。 (jQuery)声明也没有了。

事实上,这个功能运作得非常好。

以下是javascript版本:

(function ($) {
    function Change_EcwdClass() {
        var elements = document.getElementsByClassName("ecwd_event");
        for (var i=0; i<elements.length; i++)
        {
          var el = elements[i];
          el.setAttribute( "class", el.getAttribute("class") + " post" );
        }
    }
    Change_EcwdClass();
})(jQuery);

这是jQuery版本:

(function ($) {
    $('.ecwd_event').addClass('post');
})(jQuery);