如何将已登录和已注销用户的所有外部下载链接都屏蔽为内部?

时间:2019-05-14 07:09:33

标签: javascript php wordpress url-redirection url-masking

如何将外部下载链接隐藏为内部链接,并且仅由登录用户访问?而且,即使已登录的成员登录并查看帖子,也不会看到外部下载站点域。应该为所有人屏蔽。另外,如果他们未登录到wordpress网站,则将网址复制/粘贴到浏览器中也就无法访问下载的网址。

例如此处的直接下载链接示例:www.externallink.com/direct-download-link1

我们希望像内部网址一样将其屏蔽:www.ourwebsiteurl.com/direct-download-link1

该链接仅应由已登录成员访问。

怎么办?

我们已经尝试过在functions.php和单个post.php中使用以下代码。但是什么也没发生,什么都没有改变。我们可以完全控制外部下载链接站点。它是基于perl的脚本,可以生成不同的下载链接。

$user = wp_get_current_user();
if( $user->exists ) {
    add_filter( 'public_link_root', function() { return 'example.com'; } );
}
$some_link = apply_filters('public_link_root', 'ourwebsite.com') . '/resources';
echo '<a href="' . $some_link . '">View Resources</a>';

或这个:

$link_to_output = apply_filters( 'public_link_root', 'ourwebsite.com' ) . '/resources/whatever/here';

或在functions.php中:

function custom_link() {
     $user = wp_get_current_user();
     return (is_user_logged_in())? "www.example.com/direct-download-link1":"just_a_dummy_link";
}

single.php:

echo '<a href="' . custom_link() . '">View Resources</a>';

我希望www.externallink.com域的所有URL都将更改为www.ourwebsiteurl.com,但以上代码没有任何变化。即使是已登录的成员,也应屏蔽链接。如果这些链接未登录就将其复制并粘贴到浏览器中,则这些链接不起作用。

0 个答案:

没有答案