由于在我的 Wordpress 网站上为登录用户显示的管理栏,哈希链接无法按我希望的那样工作,即它们可以正常工作,但哈希 div 的顶部被 Wordpress 管理员遮住了酒吧。所以我想知道是否有一种方法,对于登录的用户,所有哈希的位置可以偏移 28px,以便它们正确显示。
据推测,如果有一个脚本可以做到这一点,我需要将它添加到我的 functions.php 文件中并将其包装在:
if (is_user_logged_in()) :
[script here]
endif;
您实际上会想在 JavaScript 中执行此操作。我假设您正在运行 jQuery。您可以使用以下代码。这将一直运行它:
jQuery(document).ready(function(){
jQuery(window).bind("hashchange", function() {
jQuery("html,body").scrollTop(jQuery(window).scrollTop() - 28);
});
});
如果您只希望它在登录时运行,您可以使用您建议的 PHP 从您的模板中回显,其内容类似于(未测试):
if (is_user_logged_in()) :
echo '<script>jQuery(document).ready(function(){
jQuery(window).bind("hashchange", function() {
jQuery("html,body").scrollTop(jQuery(window).scrollTop() - 28);
});
});</script>';
endif;
工作示例:http: //jsfiddle.net/smUr4/
托马斯