我有一个具有Buddypress(1.8.1)社交网络功能的多用户Wordpress(3.6.1)博客网站。我正在尝试向Buddypress成员个人资料添加一个标签,其中包含该个人资料成员以摘录格式提交的帖子。
以前有一个名为BP Posts in Profile的插件不再起作用。 Buddypress.org上有几个线程尚未解决此缺失功能。
我在两个部分寻求帮助:
1.如何向Buddypress成员个人资料添加名为“我的帖子”的新标签
2.如何获取要显示在此新选项卡中的成员帖子列表

谢谢!

最佳答案

您可以尝试自己做一个。要在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_navs。否则,如果您只有一项(没有其他子导航),则不需要子导航位。如果您有多个子导航,则应为主nav_item包括冗余子导航,否则它将不会显示在subnav菜单上。

希望您可以自己推断所有位。如果没有,我可以尝试在其他答复中进行澄清。否则,请尝试进行实验。有关该功能的其他选项,请参考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
}

对于多个子导航项,每个项都需要一个屏幕功能。屏幕标题是可选的,因此您可以根据需要除去它。

这样便可以添加菜单和内容。为了显示成员帖子,只需使通过get_template_part调用的php文件运行循环并放置所需的条件即可。要获得args中的用户作者,请参考http://codex.buddypress.org/developer/the-bp-global/。如果您需要运行循环的帮助,请仅参考众多WordPress文档中的任何一个。

警告:据我所知,分页不适用于默认的subnav。我从来没有能够使它工作。但是,它可以在任何其他子导航上运行。因此,不幸的是,如果您想分页,则必须创建其他子导航。如果有人知道答案,那么我会全神贯注。

希望这能回答您的问题,并且不会太令人费解或困惑。

关于profile - Buddypress如何在“新资料”选项卡中显示成员帖子,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19128325/

10-10 19:55