如何将外部下载链接屏蔽为内部链接,并且只能由登录用户访问?如果他们登录并查看帖子,即使登录的成员也不应该看到外部下载站点域。应该为每个人蒙面。另外,如果他们没有登录到 wordpress 站点,则如果他们将 url 复制/粘贴到浏览器中,他们不应该访问下载 url。
就像这里的直接下载链接示例:www.externallink.com/direct-download-link1
我们想像我们的内部 url 一样掩盖它: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";
}
单.php:
echo '<a href="' . custom_link() . '">View Resources</a>';
我希望 www.externallink.com 域的所有 url 都将更改为 www.ourwebsiteurl.com 但上面的代码没有任何改变。即使是已登录的成员,链接也应该被屏蔽。如果他们在未登录的情况下将这些 url 复制并粘贴到浏览器中,则这些链接不应该起作用。