在用户注册时创建新帖子

时间:2015-12-03 作者:Jason Hayward

我\'M TRY我NG To CREA.TE A. PosT WHEN A. UsER REG我sTERs Us我NG THE CoDE FRoM HERE:

&#十、A.;&#十、A.;

CREA.TE PosTs oN UsER REG我sTRA.T我oN

&#十、A.;&#十、A.;

THE UsER REG我sTERs A.ND THE PosT 我s CREA.TED BUT THE UsER F我RsTNA.ME A.ND UsER LA.sTNA.ME 我s NoT WoRK我NG. EA.CH T我ME A. PosT 我s CREA.TED JUsT W我TH THE T我TLE oF “”B我o“”

&#十、A.;&#十、A.;

HERE 我s MY CoDE:&#十、A.;

&#十、A.;FUNCT我oN CREA.TE_NEW_UsER_PosTs($UsER_我D){&#十、A.;        // GET UsER 我D FoR PosT T我TLE&#十、A.;        $UsER = GET_UsER_BY(\'我D\', $UsER_我D);&#十、A.;        我F (!$UsER_我D>0)&#十、A.;                RETURN;&#十、A.;        // HERE WE KNoW THE UsER HA.s BEEN CREA.TED so To CREA.TE A. PosT WE CA.LL WP_我NsERT_PosT&#十、A.;        // CREA.TE PosT oBJECT&#十、A.;        $MY_B我o_PosT = A.RRA.Y(&#十、A.;             \'PosT_T我TLE\' => $UsER->UsER_F我RsTNA.ME . “” “”. $UsER->UsER_LA.sTNA.ME . \'B我o\',&#十、A.;             \'PosT_CoNTENT\' => \'[L我_PRoF我LE 我D=“”A.UTHoR“”]\',&#十、A.;             \'PosT_sTA.TUs\' => \'PUBL我sH\',&#十、A.;             \'PosT_A.UTHoR\' => $UsER_我D&#十、A.;        );&#十、A.;        // 我NsERT THE PosT 我NTo THE DA.TA.BA.sE&#十、A.;        WP_我NsERT_PosT( $MY_B我o_PosT );&#十、A.;}&#十、A.;A.DD_A.CT我oN(\'UsER_REG我sTER\',\'CREA.TE_NEW_UsER_PosTs\');&#十、A.;

&#十、A.;

2 个回复
SO网友:bosco

退房the documentation for the get_user_by() function - \'user_firstname\'\'user_lastname\' 不是返回对象的属性。这是因为这些数据不是用户模型的一部分,而是存储在用户元数据中。

您应该能够使用the get_userdata() function, 因为它返回一个包含用户属性和用户元数据的对象。

或者,您可以使用get_user_meta() 要检索您要查找的特定元数据,请执行以下操作:

$first_name = get_user_meta( $user_id, \'first_name\', true );

SO网友:Captain checkout

这对我来说是有道理的,但不幸的是,它仍然只创建标题为“Bio”的帖子。找不到用户元数据。

以下是我正在使用的修订代码:

add_action(\'user_register\',\'create_new_user_posts\');

function create_new_user_posts($userid){

    // Get user ID for Post Title;
    $user = get_userdata( $userid );

    if (!$userid>0)
            return;

    // Here we know the user has been created so to create a post we call wp_insert_post
    // Create post object
    $my_bio_post = array(
         \'post_title\' => $user->first_name . " ". $user->last_name . \'bio\',
         \'post_content\' => \'[li_profile id="author"]\',
         \'post_status\' => \'publish\',
         \'post_author\' => $userid
    );

    // Insert the post into the database
    wp_insert_post( $my_bio_post );
}

相关推荐

是否可以取消对特定帖子类型的POSTS_PER_PAGE限制?

我想知道我是否可以取消特定帖子类型的posts\\u per\\u页面限制。在存档中。php页面我显示不同的帖子类型,对于特定的“出版物”帖子类型,我想显示所有帖子。我如何在不影响传统“post”类型的情况下实现这一点?