最合适的回答,由SO网友:Brooke. 整理而成
这是一个开放式问题。我觉得如果你做一些研究,你会找到很多答案。我会这样做的。
安装或修改代码以使用仅限成员的插件。锁定所有非成员页面。我对你们检查横幅的内容感到困惑,但如果横幅只是指向注册页面,那么请阻止该页面,除非查询字符串类似example.net/register?banner=true
已设置。如果他们去example.net/register
它将返回false。
我不确定我是否回答了你的问题,就像我说的那样,这是一个超级开放的问题。我会这样做的。(如果我理解这个问题)
EDIT:
您需要使用PHP
$_SESSION 甚至是
$_COOKIE 查看用户是否单击了横幅。我会做这样的事。
创建一个类别“premium”,并将所有premium页面分配给该类别。
将此添加到您的函数中。主题中的php
add_action( \'template_redirect\', \'premium_redirect\' );
function premium_redirect(){
//see if post is in category of premium
if(in_category(\'premium\')){
//see if the banner variable is set
$banner_check =$_GET[\'banner\'];
//set the session (or cookie)
if($banner_check == \'true\'){$_SESSION[\'banner\'] = \'true\';}
///see if the $banner and the $_SESSION is set if not take them to the banner page
if($_SESSION[\'banner\'] != \'true\'){
wp_redirect(\'http://example.net/bannerpage\');
}
return;
} //end cat check
return;
}
然后将您的横幅链接到
example.net/premiumpage?banner=true
我没有对此进行测试,但我一直在使用类似的方法。您可能还需要为页面使用自定义帖子类型,而不是in_category
看见http://codex.wordpress.org/Conditional_Tags#A_Post_Type