2012-04-17 15 views
0

私はbuddypressテーマ[buddyboss](http://buddyboss.com/)を使用しています。主な理由は、このテーマが画像ギャラリー(これは素晴らしい)を管理できるということでした。私はbuddypressテーマ(wordpress)で関数を変更する必要があります

これで、メンバーループ内でその画像機能を呼び出すことができます。

は、「あなたはbuddy_boss_pics.phpからの機能が必要になります。具体的あなたがラインから開始)関数buddyboss_pics_screen_picture_grid_contentを(使用する必要があります:buddyboss-管理者の一つは、私に言った。あなたが動作するようにファイルを編集する必要があります285現在はshown_user_idを使用しているので、members-loopを使用してください。

この機能がどのように見えるかです:私は実際にそれを実行する必要があるため

function buddyboss_pics_screen_picture_grid_content() 
{ 
    global $bp, $wpdb, $bbpics; 

    $wpdb->show_errors = BUDDY_BOSS_DEBUG; 

    $img_size = is_active_sidebar('Profile') ? 'buddyboss_pic_med' : 'buddyboss_pic_wide'; 

    $gallery_class = is_active_sidebar('Profile') ? 'gallery has-sidebar' : 'gallery'; 

    $user_id = $bp->displayed_user->id; 
    $activity_table = $wpdb->prefix."bp_activity"; 
    $activity_meta_table = $wpdb->prefix."bp_activity_meta"; 

    $pages_sql = "SELECT COUNT(*) FROM $activity_table a INNER JOIN $activity_meta_table am ON a.id = am.activity_id WHERE a.user_id = $user_id AND meta_key = 'bboss_pics_aid'"; 

    $bbpics->grid_num_pics = $wpdb->get_var($pages_sql); 

    $bbpics->grid_current_page = isset($_GET['page']) ? (int) $_GET['page'] : 1; 

    // Prepare a SQL query to retrieve the activity posts 
    // that have pictures associated with them 
    $sql = "SELECT a.*, am.meta_value FROM $activity_table a INNER JOIN $activity_meta_table am ON a.id = am.activity_id WHERE a.user_id = $user_id AND meta_key = 'bboss_pics_aid' ORDER BY a.date_recorded DESC"; 

    buddy_boss_log("SQL: $sql"); 

    $pics = $wpdb->get_results($sql,ARRAY_A); 

    $bbpics->grid_pagination = new BuddyBoss_Paginated($pics, $bbpics->grid_pics_per_page, $bbpics->grid_current_page); 

    buddy_boss_log("RESULT: $pics"); 

    // If we have results let's print out a simple grid 
    if (!empty($pics)) 
    { 
     $bbpics->grid_had_pics = true; 
     $bbpics->grid_num_pics = count($pics); 

すべてのヘルプは素晴らしいことです!

+0

あなたはhttp://wordpress.stackexchange.com/に答えを得ることができます。 – fuxia

答えて

0

Untested-が、これを試してみてください?

メンバーループで

、近いPHPタグ>

   buddyboss_pics_members_loop(bp_get_member_user_id()); 

コピーbuddyboss_pics_screen_picture_grid_content()関数の前にこれを追加

   <?php 
      /*** 
       * If you want to show specific profile fields here you can, 
       * but it'll add an extra query for each member in the loop 
       * (only one regadless of the number of fields you show): 
       * 
       * bp_member_profile_data('field=the field name'); 
       */ 
      ?> 

を探しますmembers-loopの末尾に移動します。

PHPタグの間に入れて、 buddyboss_pics_members_loop($ user_idの)

に名前を変更し、 $ USER_ID = $ BP-> displayed_user-> IDをコメントアウトまたは削除します。

+0

ねえ..あなたの説明はかなりはっきりしているようだが、うまくいかない!事は:絵のグリッドは表示されませんが、代わりに他のすべてのユーザーが消える...気難しい –

+0

私は2つのサンプルファイルをアップロード..多分あなたは私にそれを正しく行う方法を示すことができます... http:// ge.tt/3uWNXYG/v/0?c –

0

ここでbuddyboss_pics_screen_picture_grid_content()関数は、主にuser_idを使用してデータベースからイメージを取得します。

シンプルあなたはメンバー-loop.phpファイルで、whileループ内の関数と呼ばれています:buddyboss_pics_screen_picture_grid_content(bp_member_user_id())

はここで、この関数のパラメータmember_user_idを渡します。

リトル編集以下の主なbuddyboss_pics_screen_picture_grid_content()機能:変更以下

function buddyboss_pics_screen_picture_grid_content($user_id = null) 
{ 

    //Remove this code 
    $user_id = $bp->displayed_user->id; 

    //Put new Code 
    if (empty($user_id)) { 
     $user_id = $bp->displayed_user->id; 
    } else { 
     $user_id = $user_id; 
    } 

} 
関連する問題