受密码保护的页面散列URL

时间:2015-01-30 作者:user1370288

我使用的是owl carosel,它通过一个哈希url转到特定的幻灯片(http://www.owlcarousel.owlgraphic.com/demos/urlhashnav.html#five)

假设我想访问一个带有滑块的密码保护页面(site.com/page#slideone)

当我访问页面时,会要求我输入密码,在重定向后,最后的哈希将被删除。(成功时重定向至site.com/page)

知道我会在哪里保持原始url不变吗?

只是确认一下,有多个哈希URL,所以我无法硬编码一个。

谢谢

2 个回复
SO网友:TheGentleman

问题是浏览器没有在请求中传递哈希值,它是由浏览器本身解析的。由于服务器不知道哈希值,因此无法在登录后转发它。您确实可以使用javascript访问哈希。。。如果没有看到您的代码,我无法给您一个具体的答案,但类似的方法可能会奏效:

假设您正在使用wp_login_form(), 否则,相应地更改选择器

<script>
jQuery(document).ready(function($){
    $redirectField = $(\'input[name="redirect_to"]\');
    $redirectField.val($redirectField.val() + window.location.hash);
});
</script>
您可以将其包含在每个页面上,或者更好的做法是使用login_form_bottom 滤器

SO网友:giraff

以下是使用Wordpress 5.9的解决方案(假设您的主题使用jQuery):

add_filter( \'the_password_form\', function ( $output ) {
    $input = \'<input type="hidden" name="_wp_http_referer" class="wp_http_referer" value="" />\';
    $js = <<<\'JS\'
jQuery(function($){
    console.log(\'updated hash\')
    $( \'.wp_http_referer\' ).val( window.location );
});
JS;

    return str_ireplace( \'</form>\', $input . \'</form><script>\' . $js . \'</script>\', $output );
} );
(基于https://wordpress.org/support/topic/jump-link-into-password-protected-page/)

结束

相关推荐

命名空间中未找到PasswordHash

我是WordPress开发的新手,来自纯OO背景,我熟悉PHP/WordPress中的面向对象。我在entities\\Member有一个类,它是通过autoloader实现加载的。这些东西我很熟悉,到目前为止,我还没有在代码中真正使用WordPress特定的函数。对于成员,我想使用插件中的内置密码哈希函数。php文件,但出于某种原因,自动加载程序尝试将PasswordHash函数作为一个类“查找”,而不应该这样做?我已经浏览了可能的解决方案,但这似乎是WordPress中的一个限制,它在PHP 5+中处