2013-04-23 63 views
1

我使用AWD Facebook wordpress插件允许我的访问者使用他们的Facebook帐户信息登录。当访问者在我的网站上注册时,我会自动创建一个标题为他们的用户名的新帖子,并将他们的Facebook个人资料图片作为内容。代码如下:添加额外的字段以使用AWD Facebook WordPress插件登录

function my_create_page($user_id){ 
$fbuide = 0; 
$the_user = get_userdata($user_id); 
$new_user_name = $the_user->user_login; 
$new_user_avatar = get_avatar($the_user->user_email); 

global $AWD_facebook; 
$fbuide = $AWD_facebook->uid; 

$headers = get_headers('http://graph.facebook.com/' . $fbuide . '/picture?type=large',1); 

    if(isset($headers['Location'])) { 
     $url = $headers['Location']; // string 
    } else { 
     $url = false; 
    } 

$my_avatar = "<img src='" . $url . "' class='avatar AWD_fbavatar' alt='" . $alt . "' height='" . $size . "' />"; 
    $my_post = array(); 
    $my_post['post_title'] = $new_user_name; 
    $my_post['post_type'] = 'post'; 
    $my_post['post_content'] = $my_avatar; 
    $my_post['post_status'] = 'publish'; 
    wp_insert_post($my_post); 
} 
add_action('user_register', 'my_create_page'); 

我想要完成的是有点不同,虽然。我也想包括关于用户的简要传记(目前这篇文章只是他们的照片)。所以当访客使用AWD Facebook登录时,他们需要成为一个额外的领域,让用户输入他们的生物。然后,我可以从他们的用户个人资料中获取该信息并将其包含在帖子中。有关我如何完成此任何想法?有没有不同的方式来做到这一点?

回答

0

我建议将他们的Facebook图片存储为元数据,并将内容区域用作自动生成帖子的生物。所以,这样的事情应该让你开始:

$my_post = array(
    'post_title'=>$new_user_name, 
    'post_type'=>'post', 
    'post_content'=>'', 
    'post_status'=>'publish' 
); 
if($id = wp_insert_post($my_post)){ 
    update_post_meta($id, 'avatar', $url); 
} 

然后你就可以产生像这样的循环:

if (have_posts()) : while (have_posts()) : the_post(); 
    //... stuff here 
    $avatar = get_post_meta($post->ID, 'avatar', 'true'); 
    the_content(); 
    echo '<img class="avatar AWD_fbavatar" src="'.$avatar.'" alt="'.$alt.'" height="'.$size.'" />'; 
endwhile;endif; 
+0

你需要确保的是,如果用户不登记,你为他们提供用某种前端UI将他们的生物信息作为POST数据发送来更新帖子。否则,您需要为新注册的用户授予更新帖子内容的权限。 – maiorano84 2013-04-23 23:39:30

相关问题