2

Buddypress (1.8.1) ソーシャル ネットワーキング機能を備えたマルチユーザー Wordpress (3.6.1) ブログ サイトを持っています。Buddypress メンバー プロフィールにタブを追加しようとしています。このタブには、プロフィール メンバーによって送信された投稿が抜粋形式で含まれています。Profile に BP Posts というプラグインがありましたが、機能しなくなりました。Buddypress.org には、この不足している機能を解決していないスレッドがいくつかあります。2 つの部分でヘルプを探しています: 1. 「My Posts」と呼ばれる新しいタブを Buddypress メンバー プロフィールに追加する方法 2. この新しいタブに表示するメンバーの投稿のリストを取得する方法

ありがとう!

4

1 に答える 1

7

自分で作ってみることもできます。BuddyPress メンバー プロファイルに新しいメニュー項目を作成するには、プラグインのメイン ディレクトリにあるテーマの function.php または BuddyPress の bp-custom.php に次の関数を配置する必要があります。

function bp_content_setup_nav() {
global $bp;

bp_core_new_nav_item( array(
    'name'                  => __('My Posts', 'buddypress'),
    'slug'                  => 'my-posts',
    'screen_function'       => 'my_posts_screen_link',
    'position'              => 40,//weight on menu, change it to whatever you want
    'default_subnav_slug'   => 'my-posts-subnav'
) );

    bp_core_new_subnav_item( array(
        'name'                  => __( 'My Posts', 'buddypress' ),
        'slug'                  => 'my-posts',
        'parent_url'            => trailingslashit( bp_loggedin_user_domain() . 'main-tab' ),
        'parent_slug'           => 'my-posts',
        'screen_function'       => 'my_posts_screen_link',
        'position'              => 10//again, weight but for submenu
    ) );
do_action( 'bp_content_setup_nav' );
}
add_action( 'bp_setup_nav', 'bp_content_setup_nav' );

これは、サブナビとともに単一のタブを設定するだけです。bp_core_new_subnav_item をコピーして必要な要素を変更することで、追加の sub_nav を作成できます。それ以外の場合、アイテムが 1 つしかない (他のサブナビがない) 場合、サブナビ ビットは不要です。複数のサブナビがある場合は、メインの nav_item に冗長なサブナビを含める必要があります。そうしないと、サブナビ メニューに表示されません。

うまくいけば、すべてのビットを自分で推測できます。そうでない場合は、別の返信で明確にすることができます。それ以外の場合は、実験してみてください。関数の追加オプションについては、http://codex.buddypress.org/developer/core/bp_core_new_nav_item/を参照してください。

とにかく、コンテンツをレンダリングするには、上記の関数の下に「screen_function」を表示する別の関数が必要になります。

function my_posts_screen_link() {
    add_action( 'bp_template_title', 'my_posts_screen_title' );
    add_action( 'bp_template_content', 'my_posts_screen_content' );
    bp_core_load_template( apply_filters( 'bp_core_template_plugin', 'members/single/plugins' ) );
}

function my_posts_screen_title() {
    echo 'Whatever Title You Want';
}

function my_posts_screen_content() {
    get_template_part( 'directory-to-content-file' );
    //or you can put code here; only useful for short bits or echoing plain text
}

サブナビ項目が複数ある場合は、それぞれに screen 関数が必要です。画面タイトルはオプションなので、必要に応じて削除できます。

これが、メニューとコンテンツを追加する方法です。メンバーの投稿を表示するには、get_template_part を介して呼び出す php ファイルを作成し、ループを実行して、必要な基準を配置します。args でユーザーの作成者を取得するには、http: //codex.buddypress.org/developer/the-bp-global/ を参照してください。ループの実行に関するヘルプが必要な場合は、多数の WordPress ドキュメントのいずれかを参照してください。

警告: 私の知る限り、ページネーションはデフォルトのサブナビゲーションでは機能しません。私はそれを機能させることができませんでした。ただし、他のサブナビでは機能します。残念ながら、ページネーションを行う場合は、追加のサブナビを作成する必要があります。誰かがこれに対する答えを知っているなら、私は完全に耳を傾けるでしょう.

うまくいけば、それがあなたの質問に答え、複雑すぎたり混乱したりしないことを願っています.

于 2013-12-15T01:30:17.110 に答える