1

AWD Facebook wordpress プラグインを使用して、訪問者が Facebook アカウント情報でログインできるようにしています。訪問者が私のサイトに登録すると、ユーザー名でタイトルが付けられ、コンテンツとして Facebook のプロフィール写真が含まれる新しい投稿が自動的に作成されます。そのためのコードは次のとおりです。

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 でログインする場合、ユーザーが自分の略歴を入力できる追加フィールドが必要です。次に、ユーザー プロファイルからその情報を取得して、投稿に含めることができます。これを達成する方法についてのアイデアはありますか? これを行う別の方法はありますか?

4

1 に答える 1

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;
于 2013-04-23T23:35:34.103 に答える