Ich möchte Posts eines Benutzers in einem benutzerdefinierten Tab im budypress-Profil von Mitgliedern anzeigen.Paginierung auf BuddyPress-Mitgliedsprofil
Problem: Die Seitennummerierung funktioniert nicht.
Was ich versuche: Hier ist der Code, den ich versuche:
Registerkarte erstellen: Die Funktion unten schafft eine Registerkarte auf die Mitglieder Profilseite. Es funktioniert gut.
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();
}
angezeigte User Posts: Hier die show_user_posts()
ist, der die Benutzer Beiträge zeigt:
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;
}
Paginierung: Hier ist die Paginierung Funktion.
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;
}
}
Was geschieht: Die obige Paginierung Funktion berechnet und erzeugt die Anzahl der Seiten korrekt, jedoch bekomme ich 404-Fehler auf allen Paginierung Links. Zum Beispiel auf dieser url: http://wp/members/admin/blog/page/2/
Was ich denke: Dieser von Rewrite-Regeln verursacht wird. Es kann behoben werden, indem eine Rewrite-Regel für die obige URL hinzugefügt wird. Im WordPress kann das mit add_rewrite_rule
gemacht werden, aber ich kann die URL-Struktur für die Buddypress nicht herausfinden.
Hallo dort. Könnten Sie bitte eine korrekte URL Ihrer Website angeben? Der von Ihnen angegebene ist falsch: [link] (http: // wp/members/admin/blog/page/2 /), Ihre Website-Domain fehlt – bkseen