虽然这不是一个问题(也许可以在StackOverflow试一试https://stackoverflow.com/ ), 你可以试试
检查引用页面(尽管这可能是伪造的)
在WP上设置cookie并在其他站点上查找它(尽管第二个站点可能无法读取第一个站点的cookie)。(added) 域2无法读取域1设置的cookie-请参阅https://stackoverflow.com/questions/2919968/php-read-a-cookie-that-is-on-another-domain - 因此,这种选择不会跨域工作在从站点1重定向到站点2时设置查询变量,并检查站点2上的查询变量,如果用户已登录,则仅显示WP页面上的链接(否则,不会显示未登录用户的链接)。(这意味着,如果您的问题是“如何仅显示登录WP用户的链接?”,这可能更适合这个地方。)Added
基于我在对答案的评论中提供的两个链接,为了向您展示使用这两个链接中的信息进行第四个选择(最佳cboice)是多么容易,下面是一些示例代码,允许使用一个短代码仅向登录用户显示HREF链接。
// function for the [url] shortcode
function show_link_to_users ($atts) {
// check if user is logged in
if (is_user_logged_in()) {
$the_link = "a href=\'". $atts[\'link\'] . "\'>$atts[\'url\'</a>";
}
return; // returns a null if user not logged in
}
add_shortcode(\'url\', \'show_link_to_users\');
/* Usage in content area of page/post
This link only shown for logged in users: [url="https://www.example.com/somepage/here"]
The HREF link will only be shown for logged in users.
Note: no sanitation of the link value in the shortcode
*/
此代码将放置在子主题的函数中。php文件。(您不想将其放在theme的functions.php文件中,因为主题更新会覆盖(销毁)代码。(阅读儿童主题——谷歌上有很多儿童主题。)
Also Added
如果要阻止对网站上有人将键入的URL(或共享的URL未经命名)的访问,则需要使用htaccess/htpasswd规则来阻止网站的特定文件或子文件夹。
你不能用WP函数来实现这一点(非常肯定),因为用户可以直接访问链接,而不是通过页面上的链接。
And Added More
关于这一点的背景思考。总体思路,但需要一些编程。
将所有可下载/隐藏的内容放在网站的同一子文件夹中
使用htaccess规则将指向该子文件夹中任何文件的所有请求重定向到特定页面该特定页面有一个检查用户是否登录的模板如果用户已登录,则通过标题(非链接)提供要下载的文件。如果用户未登录,则显示一条消息,告诉他们登录您可以使用查询值指定要下载的文件(通过在自定义表中进行查找,该表将查询值链接到通过标题提供的文件)。