WordPress替换登陆后的默认首页

日期: 标签:WordPress教程企业建站 69 条留言
如需帮忙改代码,或者WordPress二次开发、PHP网站建设等需求,可联系我购买付费服务:  点此联系我

     如果你是想实现登录后返回登录前的页面,可以参考:WordPress登陆之后返回登陆前的页面

     WordPress登陆后默认显示的"仪表盘"页面,也就是之前所说的"控制板"页面,其实这个"仪表盘"页面实际意义真的不大,现在我想登陆后就直接显示"所有文章"页面(或者是后台任何页面吧),该如何操作呢?下面的内容也算是回答 liveme 网友的提问吧。

     其实操作也很简单,使用文本编辑器打开当前主题目录下的functions.php,在末尾加上以下php代码:

/**
 * 名称:WordPress替换登陆后的默认首页
 * 作者:露兜
 * 博客:https://www.ludou.org/
 * 最后修改:2012年04月06日
 */

function my_login_redirect($redirect_to, $request){
  if( empty( $redirect_to ) || $redirect_to == 'wp-admin/' || $redirect_to == admin_url() )
    return home_url("/wp-admin/edit.php");
  else
    return $redirect_to;
}
add_filter("login_redirect", "my_login_redirect", 10, 3);

     其中第10行的:/wp-admin/edit.php,就是登陆后要跳转的后台页面地址,这里设置成所有文章页面,如果你想登陆后跳转到写文章页面,可以改成:/wp-admin/post-new.php,其他的依此类推。

     注意:如果你的WordPress安装在子目录,如wp目录,那么第10行中的地址应该加上子目录,如/wp/wp-admin/edit.php

     如果你想登录后跳转到站内任何一个网址,请将9-12行代码替换成:

$redirect_to = 'http://这里填你的网址';

     如果你非得让wp-admin/index.php完全消失,手工输入网址.../wp-admin/也要让它跳转到所有文章页面,那你就在用文本编辑器打开wp-admin/index.php,将第一个 <?php 改成:

<?php
header("Location: http://…/wp-admin/edit.php");
exit();

     其中http://…/wp-admin/是你的后台网址。这样修改的缺点是,每次WordPress更新,你就得重新修改一次。

     好了,内容就这么简单,你会了吗?不懂可以给我留言。

-- 完 --

本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息:
原文出处:露兜博客 https://www.ludou.org/wordpress-login-redirect.html
露兜
kaapass@outlook.com  QQ 825533758

业余编程爱好者,主业是淘宝店主,卖些工艺品,感兴趣可以到我的淘宝店看看(旺旺不提供技术咨询):西西弗sisyphe

69 条留言

点此留言
1 2 386
  1. kalashnikof

    请问如何根据不同的用户页跳转不同的页面?if ($current_user->user_level < 3 ) {//跳转到普通用户界面} else{跳转到高级用户界面},但不管你用什么角色的用户去登陆 $current_user->user_level的输出都是0。。。。这是为什么呢

    • Ludou

      @kalashnikof function my_login_redirect($redirect_to, $request, $user){
        if( is_array( $user->roles ) ) {
          // 检查用户的角色
          if( in_array( "administrator", $user->roles ) ) {
            // 跳转到管理员用户界面
            return $redirect_to;
          } else {
            // 跳转到其他用户界面
            return home_url();
          }
        }
      }

      add_filter("login_redirect", "my_login_redirect", 10, 3);

      WordPress已使用用户角色来替代用户level,具体的用户角色查看
      http://codex.wordpress.org/Roles_and_Capabilities#Capability_vs._Role_Table

  2. TEA

    请问如何根据不同的用户页跳转不同的页面?
    照着LODOU的方法去修改了,已经OK,那想请问,反之退出呢,怎么才能在退出的时候返回首页,而不是返回后台入口。

    • Ludou

      @TEA <a href="<?php echo wp_logout_url( home_url() ); ?>" title="Logout">Logout</a>

      把上面的代码放到你的主题文件中。

    • Ludou

      @TEA 更多内容可以参考这篇文章:https://www.ludou.org/logout-redirect.html

  3. 高高

    我记着有一款自定义网站url的插件,但是想不起什么名字了,记得告诉我一声啦,谢谢

  4. monad

    如果登录后要自动返回入口页面呢!

    比如在首页登录就返回到首页,在栏目登录返回到栏目,内容页登录返回到内容页!

    就是判断用户登陆前的网址返回!

    • Ludou

      @monad https://www.ludou.org/wordpress-back-to-page-earlier-after-land.html

  5. 阿策

    露兜,我想实现一个 登陆才可以浏览博文的功能,就是已经登陆的用户直接打开内容页,如果没有登陆的话,就直接跳转到您开发的 ludou-custom-register的登陆注册页面,然后注册登陆后再用您开发的跳转回登陆前页面,也既内容页面。
    通过百度搜索,我想一步步实现这个功能,前两步都是在您的博客上找到的,您的提供的前两个地方我已经自己改好了,但是最后一步可能是太偏颇了,没有在您博客和网上找到方法,求您赐教打开内容页,如果cookies中没有已经登陆的信息就跳转到登陆注册页面 的实现方法!万分感谢!!就差这一步了!
    希望您看到后能给我回复!

    • Ludou

      @阿策 可以看看这个:https://www.ludou.org/wordpress-plugin-login-to-view-all.html

  6. denny

    我用的最新的WP版本,这个地方试过,好象无效,还是在那个方向盘的页面了。

  7. 大可乐

    请问怎么借用WP的密码机制。共用WP的数据表。自己写个登陆界面?

    • Ludou

      @大可乐 你可以在php文件开头插入:
      define(‘WP_USE_THEMES’, false);

      // wp-load.php的路径自己改
      require($_SERVER[‘DOCUMENT_ROOT’] . ‘/wp-load.php’);

      然后参考下文的方法一:
      https://www.ludou.org/wordpress-auto-login.html

  8. tata

    你好,有具体联系方式吗?我还是不太明白你的意思,我的网站因为之前一直是wp-admin登陆,现在登陆不了。想请你帮忙通过根目录改一下

    • Ludou

      @tata wp-login.php

      • tata

        @Ludou 你好。我找到了这个目录,但是具体怎么改我不会,看不明白,能否帮个忙

      • tata

        @Ludou 能否远程协助一下

  9. lucifer

    如何使用这种方法:登陆后返回到登陆之前那个页面?

    • 露兜

      @lucifer 善用搜索:
      https://www.ludou.org/wordpress-back-to-page-earlier-after-land.html

  10. 新手

    貼了可是沒有改變,為何? 登出後的可行,請求教學(T_____T)

    • 露兜

      @新手 那就不清楚了,请说说你是怎么修改的。

      • 新手

        @露兜 就像版主所說的把程式碼貼在functions.php的末尾,
        因為我想要登入後跳轉回首頁,
        鎖以我把9到11行改成" $redirect_to = 'http://这里填你的网址'; "
        這樣

        • 露兜

          @新手 抱歉,文中代码行数有误,是9-12行。
          如果是跳轉回首頁,可以改成:
          return home_url();

  11. kuronuma

    露兜,您好,请问下在wordpress登录中,自动识别登录身份,管理员的话跳转到可以登录到后台的首页,其他成员的话分别自动跳转到不同身份的页面可以实现吗?

    • 露兜

      @kuronuma if (!current_user_can('edit_post', $post_id))
      管理员的话跳转到可以登录到后台的首页
      else
      其他成员的话分别自动跳转到不同身份的页面

1 2

发表留言