BuddyPress会员资料上的分页

问题描述:

我想在会员的buddypress资料上的自定义选项卡中显示用户的帖子。BuddyPress会员资料上的分页

问题: 分页不起作用。

我试图: 这里有我想要的代码:

创建标签: 了以下功能创建的成员选项卡的个人资料页面。它工作正常。

function add_profile_tab() { 
    global $bp; 
    bp_core_new_nav_item(array( 
     'name'    => 'Blog', 
     'slug'    => 'blog', 
     'screen_function'  => 'yourtab_screen', 
     'position'   => 80, 
     'parent_url'   => bp_loggedin_user_domain() . '/blog/', 
     'parent_slug'   => $bp->profile->slug, 
     'default_subnav_slug' => 'blog' 
    )); 
} 

add_action('bp_setup_nav', 'add_profile_tab'); 

function yourtab_screen() { 
    add_action('bp_template_title', 'blog_content_title'); 
    add_action('bp_template_content', 'blog_content_main'); 
    bp_core_load_template('buddypress/members/single/plugins'); 
} 

function blog_content_title() { 
    echo 'Title'; 
} 

function blog_content_main() { 
    show_user_posts(); 
} 

显示用户帖子: 下面是显示用户职位show_user_posts()

function show_user_posts() { 
    $args = array(
     'author' => bp_displayed_user_id(), 
     'post_status' => 'publish', 
     'paged' => $paged 
    ); 

    $query = new WP_Query($args); 

    if ($query -> have_posts()) : 

     while ($query -> have_posts()) : $query -> the_post();  
      get_template_part('excerpt', 'content');          
     endwhile;     

     blog_pagination($query->max_num_pages, '', $paged); 
     wp_reset_postdata(); 
    endif; 
} 

分页:这里的分页功能。

function blog_pagination($numpages = '', $pagerange = '', $paged = '') { 

    global $paged, $wp_query, $wp_rewrite; 

    if (empty($pagerange)) { 
     $pagerange = 2; 
    } 

    if (empty($paged)) { 
     $paged = 1; 
    } 

    if ($numpages == '') { 
     $numpages = $wp_query -> max_num_pages; 

     if (! $numpages) { 
      $numpages = 1; 
     } 
    } 

    $pagination_args = array (
     'base'   => get_pagenum_link(1) . '%_%', 
     'format'   => 'page/%#%', 
     'total'   => $numpages, 
     'current'   => $paged, 
     'show_all'  => False, 
     'end_size'  => 1, 
     'mid_size'  => $pagerange, 
     'prev_next'  => True,  
     'type'   => 'plain', 
     'add_args'  => false, 
     'add_fragment' => '' 
    ); 

    if ($wp_rewrite->using_permalinks()) 
     $pagination_args['base'] = user_trailingslashit(trailingslashit(remove_query_arg('s', get_pagenum_link(1))).'page/%#%/', 'paged'); 

    if (! empty($wp_query->query_vars['s'])) 
     $pagination_args['add_args'] = array('s' => get_query_var('s')); 

    $paginate_links = paginate_links($pagination_args); 

    if ($paginate_links) { 
     echo $paginate_links; 
    } 
} 

会发生什么: 以上分页功能计算和正确生成的页面数,但是我得到的所有分页链接404错误。例如在这个网址: http://wp/members/admin/blog/page/2/

我想什么: 这是正在被重写规则造成的。它可以通过为上述URL添加重写规则来解决。在使用add_rewrite_rule可以完成的WordPress中,但我无法弄清Buddypress的网址结构。

+0

您好下面添加功能。你能否给你的网站正确的网址?您提供的是错误的:[链接](http:// wp/members/admin/blog/page/2 /),您的网站域名缺失 – bkseen

使用数据表,它会给你自动分页功能,只是你必须根据你的需要来控制该功能。在这里,我给你的链接看到这https://datatables.net/examples/ajax/simple.htmlWordpress你也可以使用插件作为WP -Phaginate。每个特定页面,发布,分类等的页面

复位帖子

注:这将WordPress的默认每页10个职位的设置冲突。如果您正在测试分页,请转至管理中的设置>阅读。 &你可以通过使用下面的函数来改变每一页的帖子。只要条件改变。

在function.php文件

$option_posts_per_page = get_option('posts_per_page'); 
add_action('init', 'my_modify_posts_per_page', 0); 
function my_modify_posts_per_page() { 
    add_filter('option_posts_per_page', 'my_option_posts_per_page'); 
} 
function my_option_posts_per_page($value) { 
    global $option_posts_per_page; 
    if (!is_admin() && bp_has_members() ) { 
     return 12; 
    } else { 
     return $option_posts_per_page; 
    } 
}