WordPress保护的页面重定向到PDF

时间:2017-12-15 作者:Michael Harmon

我想知道,在用户在密码保护页面上输入密码后,是否可以将其重定向到PDF?

因此,我只想在浏览器窗口中加载PDF,而不是显示该页面的内容。我宁愿不要将PDF嵌入WordPress页面。

有什么想法吗?

1 个回复
最合适的回答,由SO网友:David Sword 整理而成

因为the_content 在成功输入密码之前不进行处理,您可以添加一个重定向页面的短代码,该短代码只能在密码正确的情况下运行。因此,类似于以下内容的操作应该有效:

add_shortcode( \'pdf_redirect\', function ( $atts ) {
    $a = shortcode_atts( array(
        \'url\' => \'\',
    ), $atts );

    // instructions in case of misuse
    if (empty($a[\'url\']))
        return "<pre>Please assign a destination for the PDF redirect, [pdf_redirect url=\'https://yourpdfurl...\']</pre>";

    return "
    <meta http-equiv=\'refresh\' content=\'0; url={$a[\'url\']}\'>
    <script>
        window.location.href = \'{$a[\'url\']}\';
    </script>
    <p>If your browser hasn\'t redirected you, please <a href=\'{$a[\'url\']}\'>click here</a>.</p>";
} );
然后在受密码保护的页面上,内容是:

[pdf_redirect url="http://example.com/file.pdf"]
元刷新是一种糟糕的编码标准,但所有浏览器都支持它,而且它可以工作。javascript是回退重定向,html链接是双重回退。现在,您可以通过点击早期钩子,使重定向发生在文档头之前,如wp_loaded, 查看用户是否具有一个或两个函数的正确密码,并解释$post->post_content 短代码,然后使用wp_redirect() - 但我懒散的做事方式也很管用。

结束

相关推荐

在MU插件中重新定义wp_password_change_Notify合法吗?

我试图为这个功能添加一些逻辑,即何时提醒管理员密码更改,但根本没有发送电子邮件。codex说它需要在插件中声明,那么这对mu插件是合法的还是只有特定的位置可以重新声明?目前,这大致是我的代码,但邮件从未发出:if(!function_exists(\'wp_password_change_notification\')){ //die(\'I can get here\'); function wp_password_change_notification($user){&