0

我希望用户只能通过自定义页面而不是默认页面注册和登录,而是只有管理员可以通过默认 wp-login.php 登录

我找到了这个..但它在同一页面上重定向登录和注册。google.com 在这种情况下。

add_action('init','possibly_redirect');

function possibly_redirect(){
 global $pagenow;
 if( 'wp-login.php' == $pagenow ) {
  wp_redirect('http://google.com/');
  exit();
 }
}
4

1 回答 1

0

我讨厌发布“你不能做那个答案”,因为它很容易出错,但一般来说你不能这样做。在有人登录之前,WordPress 不知道该人是否是管理员。您将如何根据不可用的信息进行切换?

我能想到的只有几个不太好的解决方案:

  1. 如果您的管理员有一个静态 IP 或静态 IP,您可以根据它进行切换。当然,如果管理员尝试从妈妈家或咖啡店登录,这将不起作用。
  2. 您可以设置一些非常长期的 cookie(不是 WordPress 使用的任何 cookie),将用户标记为管理员并打开它。当然,这仅适用于使用设置了 cookie 的计算机上的用户。
  3. 您可以创建两个自定义登录页面-user-login.phpadmin-login.php- 并且永远不要公开发布后者。然后,您将所有登录重定向到user-login.php除了尝试访问之外admin-login.php,这大概只有您的管理员知道。这实际上只是混淆,但也许这对你有用。

任何一种解决方案都会不稳定,有时会起作用,但有时会不起作用。

登录后将用户重定向到某个特定页面非常容易。困难的部分是在用户登录之前为用户使用不同的登录页面。

于 2013-03-02T15:42:27.900 回答