我正在创建一个函数,在用户注册时为其创建一个页面。创建的帖子属于某个类别。这些是标准帖子,不是自定义帖子类型。
创建帖子后,我想获取ID并用它覆盖post\\u名称。
到目前为止,我有以下内容,创建帖子:
function add_memberzone_page( $user_id ) {
global $wpdb;
$user = get_userdata( $user_id );
$where = get_posts_by_author_sql( \'post\', true, $user_id );
if( $wpdb->get_var( \'SELECT COUNT(*) FROM $wpdb->posts $where\' ) >= 1 ) return;
$user_page = array(
\'post_title\' => $user->first_name,
\'post_type\' => \'post\',
\'post_content\' => \'\',
\'post_excerpt\' => \'\',
\'post_category\' => \'21\',
\'post_author\' => $user_id,
\'post_status\' => \'publish\',
);
wp_insert_post( $user_page );
}
add_action( \'user_register\', \'add_memberzone_page\', 999 );
更新帖子:
function update_memberzone_page( $post_id ) {
global $wpdb;
$post_id = wp_insert_post( $user_page );
$post_update = array(
\'post_name\' => $post_id,
);
update_post_meta( $post_update );
}
add_action( \'save_post\', \'update_memberzone_page\', 10, 3 );
非常感谢您能帮助我朝着正确的方向前进!
最合适的回答,由SO网友:TheDeadMedic 整理而成
不需要这两个函数/挂钩-只需使用第一个,并添加以下功能:
if ( $post_id = wp_insert_post( $user_page ) ) {
wp_update_post(
array(
\'ID\' => $post_id,
\'post_name\' => $post_id,
)
);
}