所以,问题是,在Expositio主题上,他们添加了一些jQuery代码all 链接,如果您没有关闭移动菜单,在可配置的秒数(默认为1秒)后,只需将站点重定向到链接url。
如果转到js/functions的第260行。js您会发现:
$(\'a\').on(\'click\', function(e) {
e.preventDefault();
var _this = $(this);
// close mobile menu if it\'s open, redirect otherwise
if (_body.hasClass(\'toggled-on\') && _this.parents(\'#page\').length == 1
&& _this.parents(\'#primary-navigation\').length == 0
) {
load_effect.menuOff();
} else {
load_effect.loader.show();
var href = $(this).attr(\'href\');
$(\'.site\').css(\'opacity\', 0);
setTimeout(function() {
window.location = href;
}, load_effect.duration);
}
});
我认为最好的解决方案是创建一个子主题,将该脚本出列,并将脚本副本放入队列,而不必重定向:
<?php
// hook in late to make sure the parent theme\'s registration
// has fired so you can undo it. Otherwise the parent will simply
// enqueue its script anyway.
add_action(\'wp_enqueue_scripts\', \'override_functions_script\', 100);
function override_functions_script()
{
wp_dequeue_script(\'expositio-script\');
wp_enqueue_script(\'child-expositio-script\', get_stylesheet_directory_uri().\'/js/functions.js\', array(\'jquery\'));
}
和你的孩子的功能。js,如果链接没有fancybox类,则只能重定向页面:
$(\'a\').on(\'click\', function(e) {
e.preventDefault();
var _this = $(this);
// close mobile menu if it\'s open, redirect otherwise
if (_body.hasClass(\'toggled-on\') && _this.parents(\'#page\').length == 1
&& _this.parents(\'#primary-navigation\').length == 0
) {
load_effect.menuOff();
} else {
load_effect.loader.show();
var href = $(this).attr(\'href\');
$(\'.site\').css(\'opacity\', 0);
if(!_this.hasClass(\'fancybox\')) { // only redirect if it doesn\'t have fancybox class
setTimeout(function() {
window.location = href;
}, load_effect.duration);
}
}
});
此外,最好向主题开发人员报告这一点,因为他们不应该在如此通用的规则上使用这些代码。