由于我在这里找到的关于如何使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"));
}
}
});
我在这里想念的是什么?
答案 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);