BuddyPress:在成员个人资料上显示多种自定义帖子类型

时间:2013-07-21 作者:Daniel Foltynek

GOAL

我们在Buddypress中有几个插件,可以在成员的个人资料页面中显示帖子(显示用户的帖子),其中一些插件不再工作(个人资料上的bp帖子)或新的插件(TCH\\u PostsOnProfile),还有一些插件的工作方式类似于(buddyblog)但还没有显示多个自定义帖子类型,我决定尝试在没有插件的情况下执行,在这个网站的帮助下,我收集了一些片段,并创建了一个几乎可以使用的新选项卡,其中包含了成员的自定义帖子if 对创建特定帖子类型的用户角色有条件。我已成功地在buddypress中的成员配置文件中添加了一个新选项卡,其代码位于bp custom中。php

PROBLEM

在bp自定义中添加代码段后。php和创建stats概要文件。php模板我尝试了许多不同代码的组合,但我还看不到任何东西,只有空的带有成员子菜单和(缺少页脚和侧边栏)的断开的配置文件页面

CONCLUSION

如何显示自定义用户角色的自定义帖子?每个用户角色都有不同的表单需要填写,我希望通过新添加的选项卡将提交的表单显示在他们的配置文件中。

EXAMPLES

求职者创建两种自定义职位类型:“公文包”和“申请人”,CPT“公文包”类似于他们的简历,带有个人数据和照片,“申请人”是寻找工作的广告。机构创建机构投资组合(CPT“Agency”)和“employer”CPT(提供工作的广告)。用户角色俱乐部创建CPT“Club”等。

bp自定义。php在这里

// Set up Custom BP navigation
function my_setup_nav() {   
   if ( user_can( bp_displayed_user_id(), \'job_applicant\' ) ) {  
   global $bp;
      bp_core_new_nav_item( array(
            \'name\' => __( \'Stats\', \'buddypress\' ),
            \'slug\' => \'stats\',
            \'position\' => 20,
            \'screen_function\' => \'profile_screen_stats\' 
      ) );

      // Change the order of menu items
      $bp->bp_nav[\'messages\'][\'position\'] = 100;
  }
}

add_action( \'bp_setup_nav\', \'my_setup_nav\' );


// show feedback when \'Stats\' tab is clicked
function profile_screen_stats() {
add_action( \'bp_template_content\', \'profile_screen_stats_show\' );
bp_core_load_template( apply_filters( \'bp_core_template_plugin\', \'members/single/plugins\' ) );
}

function profile_screen_stats_show() {
// call your stats template
locate_template( array( \'stats-profile.php\' ), true );
}
统计资料中的。php页面我正在尝试显示这些帖子,这是我认为最适合我的代码,模板位于bp默认文件夹中

<?php 
  global $bp;
  global $paged;
  global $wp_query;
  $temp = $wp_query;
  $wp_query = null;
  $user_id = $bp->displayed_user->id;
  $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
  $args = array(
        \'posts_per_page\' => 10,
        \'cat\' => -1,
        \'post_type\' => array( 
            \'post\',
            \'portfolio\',
            \'applicant\',
            \'agency\',
            \'employer\'  
         ),
        \'author\' => $user_id,
        \'paged\' => $paged
    );
 $wp_query = new WP_Query($args);
  while ( $wp_query->have_posts() ) :   $wp_query->the_post();
    the_title();
  endwhile;
  $wp_query = null; $wp_query = $temp;
 ?>

1 个回复
最合适的回答,由SO网友:Daniel Foltynek 整理而成

这是stats概要文件中更新的工作代码。php与上面的代码一起在bp中自定义。php(buddypress functions.php)为我提供了多个自定义帖子类型的显示用户的标题。

<?php
        if ( is_user_logged_in() ):

        query_posts(array(
                \'post_type\' => array( 
            \'post\',
            \'portfolio\',
            \'applicant\',
            \'agency\',
            \'employer\'  
         ),
                \'author\' => bp_displayed_user_id(),
                \'showposts\' => 3
            ) );  
        ?>
        <?php while (have_posts()) : the_post(); ?>
                <h3><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h3>

        <?php endwhile;

        else :

            echo "";

        endif;
        ?>

结束

相关推荐