Wordpress:功能在创建新用户后创建新帖子

时间:2014-02-06 09:23:29

标签: php wordpress

我需要在创建新用户(仅限编辑器)后创建一个新帖子(自定义帖子类型)。 我想我必须使用这样的钩子:

do_action('user_register', $user_id);
add_action ('user_register', "create_post");
function create_post()
{
// Create the post
}

但我不知道如何在这个功能中创建帖子。 我在新用户表单中有一些自定义字段...

由于 纪尧姆

2 个答案:

答案 0 :(得分:0)

尝试使用add_action这里的参数就是一个简单的例子

add_action( 'user_register', 'create_post', 10, 1 );

function create_post( $user_id ) {

    if ( isset( $_POST['first_name'] ) )
        ..... your code  here

}

并且对于惰性帖子,在给定链接http://codex.wordpress.org/Function_Reference/wp_insert_post

中使用此函数

答案 1 :(得分:0)

来自wordpress codex user_register

您可以执行此类代码

add_action( 'user_register', 'myplugin_registration_save', 10, 1 );

function myplugin_registration_save( $user_id ) {
    //Here you can update user information after they registered
    if ( isset( $_POST['first_name'] ) ) {
        update_user_meta($user_id, 'first_name', $_POST['first_name']);
    }

}

要在用户注册后插入帖子,请尝试使用扩展代码:

add_action( 'user_register', 'myplugin_registration_save', 10, 1 );

function myplugin_registration_save( $user_id ) {
    //Here you can update user information after they registered
    if ( isset( $_POST['first_name'] ) ) {
        update_user_meta($user_id, 'first_name', $_POST['first_name']);
    }

    // Here you can insert new post for registered users
    $my_post = array(
        'post_title' => 'Title',
        'post_content' => 'some content',
        'post_status' => 'publish',
        'post_author' => $user_id, //If to assign post to the currently registered user otherwise put 1
        'post_type' => 'post'
    );

    // Insert the post into the database
    $_post_id = wp_insert_post($my_post);
    if ($_post_id) {
        return 'post inserted';
    }
}

update_user_meta可让您在注册后更新用户的其他信息 wp_insert_post允许您以编程方式插入帖子