WordPress页面上的指定锚点的漂亮网址

问题描述:

我正在一个WordPress网站上工作,其中服务页面是一个长页面,每个部分都有锚点。WordPress页面上的指定锚点的漂亮网址

www.mysite.com/services/#human-resources按预期跳转到人力资源部分。

在.htaccess文件中是否有任何方法可以使诸如www.mysite.com/services/human-resources/之类的url直接跳转到锚点?

我试过几个不同的重写规则,我已经得到最接近的是:

RewriteRule services/human-resources services/#human-resources [NE,L,R=301] 

但是,这显示了其失败的目的URL中的#。删除R=301只会导致它无法执行任何操作。

谢谢。

我一直在类似的网站上工作,这就是我解决这个问题的方法。

首先将此动作添加到functions.php中,女巫将用户重定向到页面上的适当锚点。

function url_handler(){ 
    $path = substr($_SERVER['REQUEST_URI'], 1); //get the path minus the '/' 
    if(is_page() || is_404()){ // do you own conditional tags 
    wp_redirect(home_url("#" . $path)); //redirect to the #anchor 
    exit(); 
    } 
} 
add_action('template_redirect', 'url_handler'); 

接下来你需要做一个javascirpt处理器女巫获取页面(与锚的网址)的网址,并作出适当的情况下,滚动到该节。事情是这样的:

var hash = window.location.hash; 
hash = hash.replace('#',''); 
hash = hash.replace('/',''); 
/* do stuff here */ 

希望这有助于