Php 将哈希偏移28px以适应登录Wordpress用户的管理栏
由于在我的Wordpress站点上为登录用户显示的管理栏,哈希链接不能像我希望的那样工作,也就是说,它们应该工作,但是哈希div的顶部被Wordpress管理栏遮住了。所以我想知道是否有一种方法,对于登录的用户,所有散列的位置都可以偏移28px,以便正确显示 据推测,如果有一个脚本可以做到这一点,我需要将其添加到functions.php文件中,并将其包装为:Php 将哈希偏移28px以适应登录Wordpress用户的管理栏,php,wordpress,hash,hyperlink,Php,Wordpress,Hash,Hyperlink,由于在我的Wordpress站点上为登录用户显示的管理栏,哈希链接不能像我希望的那样工作,也就是说,它们应该工作,但是哈希div的顶部被Wordpress管理栏遮住了。所以我想知道是否有一种方法,对于登录的用户,所有散列的位置都可以偏移28px,以便正确显示 据推测,如果有一个脚本可以做到这一点,我需要将其添加到functions.php文件中,并将其包装为: if (is_user_logged_in()) : [script here] endif; 实际上,您需要在JavaScrip
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从模板中回送,内容如下(未测试):
如果(用户是否已登录()):
echo'jQuery(document).ready(function(){
jQuery(window.bind(“hashchange”,function()){
jQuery(“html,body”).scrollTop(jQuery(window).scrollTop()-28);
});
});';
endif;
工作示例:
Thomas我怀疑您可能想更改CSS,以便在管理栏出现时,您的“哈希链接”所在的div向下移动。没什么特别的,只是相对定位我希望的是一个脚本,如果URL中有散列,它会自动抵消div的位置。但是为什么呢?以正确的方式定位你的DIV会比这更好,不是吗?这样,如果出于某种原因,有另一个酒吧繁殖,你得到同样的伟大结果免费@纳恩。对不起,我不太明白你建议的解决方案。管理栏将页面的所有内容向下移动28像素。这很好。我不想重新定位页面上的任何内容,只要调整页面滚动/跳转到的位置(当URL中有散列时)。也许你想发布一个更详细的答案,这样我就可以了解你的建议了?啊,现在我明白你的问题了,我现在还不太清楚。正如我之前理解的那样,您希望移动
div
,但您只希望锚点的“片段标识符”(据我所知,这就是所谓的片段标识符)向下滚动,因为偏移量以当前形式将其打断。
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;