实际上,我以前是用自定义页面模板而不是可见性选项来完成这项工作的。。。因为登录和未登录的用户最终都会访问同一个页面。这里有一些伪代码(即,实际上不使用代码,但它会给您一个想法)
$logged_in = is_user_logged_in();
switch($logged_in) {
case true:
// Do stuff for logged in users
break;
case false:
default:
// Do stuff for not logged in users
break;
}
基本上,您可以检查用户是否已登录(使用
get_currentuserdata()
并检查他们的身份)。如果用户已登录,则显示一块内容。如果用户未登录,则显示另一块内容。
我当然认为有一个可见性选项将是一个更优雅的解决方案,但是对于每种类型的用户,您需要两个不同的页面。如果登录的用户访问了错误的站点,他们会看到404错误页面吗?或者被指示到其他地方?由于有两个单独的页面,这是一种您必须优雅地处理的情况。