WordPress: Custom WP-Query und Pagination

Will man auf einer WordPress-Seite beispielsweise neben dem eigentlichen Inhalt auch die Artikel einer bestimmten Kategorie anzeigen zu lassen und diese dann seitenweise durchblättern können, hilft dieses kleine Code Snippet.

// Restore the global $post variable of the main query loop after a secondary query loop using new WP_Query. 
wp_reset_postdata();

// get category name and article per page config from custom page vars
$category_name = get_post_meta(get_the_ID(), 'Category name', true);
$posts_per_page = get_post_meta(get_the_ID(), 'Posts per page', true) ? get_post_meta(get_the_ID(), 'Posts per page', true) : 5;

// get current page
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

// the custom query
$args = array(
    'posts_per_page' => $showposts,
    'paged' => $paged,
    'category_name' => $category_name
);
$cpt_query = new WP_Query($args);

if ($cpt_query->have_posts()) {
  while ($cpt_query->have_posts()) {
    $cpt_query->the_post();
    get_template_part( 'content', get_post_format() );
  }
} else {
  get_template_part( 'content', 'none' );
}

// prev / next page nav
next_posts_link( 'previous article', $cpt_query->max_num_pages);
previous_posts_link( 'nex article', $cpt_query->max_num_pages);

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.


+ 59 = 64