javascript - 如何屏蔽所有帖子中的外部下载链接并限制为会员?
问题描述
如何将外部下载链接屏蔽为内部链接,并且只能由登录用户访问?如果他们登录并查看帖子,即使登录的成员也不应该看到外部下载站点域。应该为每个人蒙面。另外,如果他们没有登录到 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 复制并粘贴到浏览器中,则这些链接不应该起作用。
解决方案
更新
OP 的评论: “重定向呢?可以看出我知道我只是想至少隐藏那些 url,这样他们中的大多数人都不会知道。”
最简单的方法是在您的服务器上编辑 .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
推荐阅读
- javascript - 输入字符串的正则表达式以反斜杠开头
- javascript - TypeError:没有'new'就不能调用类构造函数CryptoFactory
- flask - Flask:request.view_args 总是返回一个空字典
- spring-boot - Quartz Scheduler sql脚本的Liquibase错误
- node.js - Mongoose 方法和 Typescript - 此属性未定义
- c# - 如何制作状态(加载)显示表单
- http - Wget 和 Nginx 无法获取 localhost 的内容
- import - 使用 proc import sas 指定格式
- javascript - 使用隐藏输入将表单信息和附加变量从 HTML 发送到 PHP
- php - 从 xe 转换器 api 获取数据时遇到问题