将hash偏移28px以适应Wordpress登录用户的管理栏


offsetting hash by 28px to accommodate admin bar for logged in Wordpress users

由于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/

Thomas