6
A
回答
11
更好的地方问WordPress的问题可能是WordPress Answers。安美居,如果你想解决这个无插件,你需要三样东西:
- 一个custom WordPress theme
- 一个Page Template
- 使用的页面模板
当你有这些三A WordPress Page您可以在页面模板中执行以下操作:
<?php
/*
Template Name: Registration
*/
global $current_user;
get_currentuserinfo();
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$company = $_POST['company'];
if (($firstname != '') && ($lastname != '') && ($company != '')) {
// TODO: Do more rigorous validation on the submitted data
// TODO: Generate a better login (or ask the user for it)
$login = $firstname . $lastname;
// TODO: Generate a better password (or ask the user for it)
$password = '123';
// TODO: Ask the user for an e-mail address
$email = '[email protected]';
// Create the WordPress User object with the basic required information
$user_id = wp_create_user($login, $password, $email);
if (!$user_id || is_wp_error($user_id)) {
// TODO: Display an error message and don't proceed.
}
$userinfo = array(
'ID' => $user_id,
'first_name' => $firstname,
'last_name' => $lastname,
);
// Update the WordPress User object with first and last name.
wp_update_user($userinfo);
// Add the company as user metadata
update_usermeta($user_id, 'company', $company);
}
if (is_user_logged_in()) : ?>
<p>You're already logged in and have no need to create a user profile.</p>
<?php else : while (have_posts()) : the_post(); ?>
<div id="page-<?php the_ID(); ?>">
<h2><?php the_title(); ?></h2>
<div class="content">
<?php the_content() ?>
</div>
<form action="<?php echo $_SERVER['REQUEST_URI'] ?>" method="post">
<div class="firstname">
<label for="firstname">First name:</label>
<input name="firstname"
id="firstname"
value="<?php echo esc_attr($firstname) ?>">
</div>
<div class="lastname">
<label for="lastname">Last name:</label>
<input name="lastname"
id="lastname"
value="<?php echo esc_attr($lastname) ?>">
</div>
<div class="company">
<label for="company">Company:</label>
<input name="company"
id="company"
value="<?php echo esc_attr($company) ?>">
</div>
</form>
</div>
<?php endwhile; endif; ?>
现在,当您想要检索已存储的内容时,您需要知道信息是在用户对象本身还是在元数据中。要检索的第一个和最后一个名称(登录用户):
global $current_user;
$firstname = $current_user->first_name;
$lastname = $current_user->last_name;
要检索的公司名称(登录的用户):
global $current_user;
$company = get_usermeta($current_user->id, 'company');
这是它的基本精神。还有很多东西在这里丢失,例如验证,错误消息输出,在WordPress API中发生错误的处理等等。还有一些重要的TODO,你必须在代码才能工作之前处理。代码应该也可以分成几个文件,但我希望这足以让你开始。
相关问题
- 1. Wordpress - 自定义注册表格,重定向后
- 2. Wordpress复选框到自定义注册表格
- 3. 在wordpress中注册时在自定义表格中插入值
- 4. Django-allauth和自定义注册表格
- 5. Delphi - 如何注册自定义表格
- 6. 自定义django注册表
- 7. 自定义注册插件在WordPress
- 8. 注册自定义后类型WordPress的
- 9. 注册自定义WordPress小部件
- 10. 在wordpress中自定义登录注册
- 11. 用wordpress注册表格
- 12. WordPress自定义表格
- 13. WordPress的注册自动登录以及自定义重定向
- 14. Laravel 5.3自定义注册表
- 15. 如何:sfForkedDoctrineApply自定义注册表
- 16. 为注册表格中的自定义字段设计自定义验证
- 17. 注册自定义控件
- 18. 自定义注册Laravel 5.1
- 19. Flask-Security:自定义注册
- 20. 注册自定义元素
- 21. FOSUserBundle注册自定义
- 22. 设计注册自定义
- 23. Symfony 3:FosUserBundle使用自定义html类自定义注册表
- 24. React中的自定义mailchimp注册表格
- 25. Django-allauth自定义社交注册表格
- 26. 创建贝宝自定义事件注册表格
- 27. 注册表格上的自定义下拉菜单属性
- 28. 需要Wordpress多站点自定义注册插件/脚本
- 29. 如何在WordPress中自定义我的评论注册
- 30. Wordpress页面模板中的自定义注册