自分で作ってみることもできます。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 ドキュメントのいずれかを参照してください。
警告: 私の知る限り、ページネーションはデフォルトのサブナビゲーションでは機能しません。私はそれを機能させることができませんでした。ただし、他のサブナビでは機能します。残念ながら、ページネーションを行う場合は、追加のサブナビを作成する必要があります。誰かがこれに対する答えを知っているなら、私は完全に耳を傾けるでしょう.
うまくいけば、それがあなたの質問に答え、複雑すぎたり混乱したりしないことを願っています.