如何将外部下载链接隐藏为内部链接,并且仅由登录用户访问?而且,即使已登录的成员登录并查看帖子,也不会看到外部下载站点域。应该为所有人屏蔽。另外,如果他们未登录到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 :(得分:0)
更新
OP的评论: “重定向是什么?可以看出,我知道我只是想至少隐藏那些网址,所以大多数人都不知道。”
最简单的方法是在服务器上编辑.htaccess文件
Redirect 301 /resources https://external.com/direct-download-link1
已编辑
也许您可以使用is_user_logged_in()
创建自己的自定义函数(请参见doc)。在您要放置链接的任何地方,调用您的自定义函数:
所以在functions.php中:
function custom_link() {
// will only show link when user is logged in
if (is_user_logged_in()) {
// this only shows the "internal" link which will be redirected to external link
echo '<a href="https://www.example.com/resources">View Resources</a>';
}
}
在您的页面上:
custom_link(); //will not show link if user not logged in