自定义用户配置文件、注册、带有主题的登录页面

时间:2013-02-07 作者:He Shiming

WordPress用户配置文件页面使用管理界面,其用户注册/登录页面不是主题的一部分。我想

将其更改为“我的网站”的自定义主题,最好使用自定义表单和captcha,在用户登录时删除顶栏保留此顶栏功能,以及管理员和贡献者的管理界面访问权限(因为我使用的是“调试栏”插件,它是顶部栏的一部分)

  • 对于其他普通用户,只需隐藏仪表板(从技术上讲,即使输入了URL也无法访问),然后使用带有站点主题的配置文件页面
  • 我如何做到这一点?我想使用过滤器/挂钩,也许可以创建一个自定义插件。我不想更改WordPress本身的代码。

    非常感谢。

    2 个回复
    最合适的回答,由SO网友:Sunyatasattva 整理而成

    这当然可以做到,但需要做一些工作。我正在为一个客户端开发一个非常复杂的插件,我计划对其进行扩展,并在准备就绪后将其公开。

    告诉你每件事都需要很长时间,所以我将给你一些关于如何实现目标的建议。

    制作一个名为“Profile”的页面,并在主题中使用自定义模板来设置页面样式并添加所需的功能。使用过滤器login_redirect 在用户的配置文件页面上重定向用户(或在您希望的任何地方,而不是在后端)。

    使用和自定义您的登录表单wp_login_form. 如果要自定义标准WP表单,请查看深入提示on the codex. 您可以找到所有挂钩、CSS类、ID等,以便于参考。创建自定义注册表将更加棘手:您最好的朋友在这个过程中?wp_insert_userwp_verify_nonce.

    有一个与用户相关的元选项,决定是否显示管理栏。您可以从后端对其进行编辑,也可以通过编程方式(例如,在新用户注册时)进行编辑,如下所示update_user_meta( $user, \'show_admin_bar_front\', \'false\' );

    查看您的用户角色,并参阅show_admin_bar.

    检查您的用户角色并考虑使用wp_redirect (记住exit!)

    这应该会给你足够的信息和参考,让你自己动手,但如果你需要任何更具体的帮助,请随时询问。

    SO网友:Dido Kotsev

    1. 阅读2:)

    2. 您可以查看此帖子-http://digwp.com/2010/12/login-register-password-code/ 如果您不需要选项卡,可以制作三个不同的页面模板,其中包含用于登录、注册和密码丢失的表单。然后创建三个使用此模板的页面。

    3 and 4. 此代码将仅为管理员和编辑器显示顶部管理栏:

    if (!current_user_can(\'edit_posts\')) {
        add_filter(\'show_admin_bar\', \'__return_false\');
    }
    
    5. 使用此代码,只有管理员和编辑器才能访问wp admin。如果用户或未登录的用户将看到错误404。

    function access_admin_init() {
    if ( !current_user_can(\'edit_posts\') && ! ( defined( \'DOING_AJAX\' ) && DOING_AJAX ) ) {
        global $wp_query;
        $wp_query->set_404();
        status_header( 404 );
        get_template_part( 404 );
        exit;
       }
    }
    add_action( \'init\', \'access_admin_init\' );
    

    结束