2016-04-29 9 views
0

Ich habe einen Code-Schnipsel zu bauen benutzerdefinierte Paginierung verwendet:Benutzerdefinierte Paginierung nicht für benutzerdefinierte Post-Typen Seite angezeigt

<?php 
if (! function_exists('procare_paging_nav')) : 
/** 
* Display navigation to next/previous set of posts when applicable. 
* 
* @return void 
*/ 
function procare_paging_nav() { 
    // Don't print empty markup if there's only one page. 
    if ($GLOBALS['wp_query']->max_num_pages < 2) { 
     return; 
    } 

    $paged  = get_query_var('paged') ? intval(get_query_var('paged')) : 1; 
    $pagenum_link = html_entity_decode(get_pagenum_link()); 
    $query_args = array(); 
    $url_parts = explode('?', $pagenum_link); 

    if (isset($url_parts[1])) { 
     wp_parse_str($url_parts[1], $query_args); 
    } 

    $pagenum_link = remove_query_arg(array_keys($query_args), $pagenum_link); 
    $pagenum_link = trailingslashit($pagenum_link) . '%_%'; 

    $format = $GLOBALS['wp_rewrite']->using_index_permalinks() && ! strpos($pagenum_link, 'index.php') ? 'index.php/' : ''; 
    $format .= $GLOBALS['wp_rewrite']->using_permalinks() ? user_trailingslashit('page/%#%', 'paged') : '?paged=%#%'; 

    // Set up paginated links. 
    $links = paginate_links(array(
     'base'  => $pagenum_link, 
     'format' => $format, 
     'total' => $GLOBALS['wp_query']->max_num_pages, 
     'current' => $paged, 
     'mid_size' => 2, 
     'add_args' => array_map('urlencode', $query_args), 
     'prev_text' => '<i class="fa fa-chevron-left"></i>', 
     'next_text' => '<i class="fa fa-chevron-right"></i>', 
     'type'  => 'list', 
    )); 

    if ($links) : 

    ?> 
    <nav class="navigation paging-navigation" role="navigation"> 
     <?php echo $links; ?> 
    </nav><!-- .navigation --> 
    <?php 
    endif; 
} 
endif; 
?> 

ich die Funktion für Blog-Beiträge verwendet und die Paginierung für home.php Seite erschien. Die Seitennummerierung wird jedoch nicht auf der Seite für benutzerdefinierte Posttypen angezeigt. Ich habe einen benutzerdefinierten Beitragstyp namens "ervaringen" erstellt.

Und meiner Seite-ervaringen.php:

<?php 
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 

$partnersLoop = new WP_Query(array('post_type' => 'ervaringen', 'orderby' => 'post_id', 'posts_per_page' => 10, 'paged' => $paged)); 

while($partnersLoop->have_posts()): $partnersLoop->the_post();   
?> 

<div class="post press-photo"> 
     <div class="image"> 
      <?php the_post_thumbnail(); ?> 
     </div><!-- image --> 
     <div class="content"> 
      <h5><?php the_title(); ?></h5> 
      <p><?php the_excerpt(); ?></p> 
     </div><!-- content --> 
</div><!-- .press-photo --> 

<?php endwhile; ?> 

<?php procare_paging_nav(); ?> 
<?php wp_reset_query(); ?> 

Also, wenn jemand kann mir helfen, indem sie sagen, was ich falsch mache, dass ich die Paginierung auf meiner benutzerdefinierten Post-Seite fehle.

Welche anderen Lösungen, die ich versucht habe und nicht für mich arbeiten:

die Funktion Ändern benutzerdefinierten als Argument Abfrage zu übergeben, anstatt globale Abfrage zu verwenden.

<?php 

if (! function_exists('procare_paging_nav')) : 

function procare_paging_nav($partnersLoop) { 


    // Don't print empty markup if there's only one page. 
    if ($partnersLoop->max_num_pages < 2) { 
     return; 
    } 

    $paged  = get_query_var('paged') ? intval(get_query_var('paged') 

    $pagenum_link = html_entity_decode(get_pagenum_link()); 
    $query_args = array(); 
    $url_parts = explode('?', $pagenum_link); 

    if (isset($url_parts[1])) { 
     wp_parse_str($url_parts[1], $query_args); 
    } 

    $pagenum_link = remove_query_arg(array_keys($query_args), $pagenum_link); 
    $pagenum_link = trailingslashit($pagenum_link) . '%_%'; 

    $format = $GLOBALS['wp_rewrite']->using_index_permalinks() && ! strpos($pagenum_link, 'index.php') ? 'index.php/' : ''; 
    $format .= $GLOBALS['wp_rewrite']->using_permalinks() ? user_trailingslashit('page/%#%', 'paged') : '?paged=%#%'; 

    // Set up paginated links. 
    $links = paginate_links(array(
     'base'  => $pagenum_link, 
     'format' => $format, 
     'total' => $partnersLoop->max_num_pages, 
     'current' => $paged, 
     'mid_size' => 2, 
     'add_args' => array_map('urlencode', $query_args), 
     'prev_text' => '<i class="fa fa-chevron-left"></i>', 
     'next_text' => '<i class="fa fa-chevron-right"></i>', 
     'type'  => 'list', 
    )); 

    if ($links) : 

    ?> 
    <nav class="navigation paging-navigation" role="navigation"> 
     <?php echo $links; ?> 
    </nav><!-- .navigation --> 
    <?php 
    endif; 
} 
endif; 
?> 

und in Seiten ervaringen.php

procare_paging_nav($partnersLoop); 

Vielen Dank für Ihre Zeit.

+0

change 'posts_per_page' => -1 und versuchen –

+0

bereits getan haben. Aber das hat nicht alle Beiträge auf der gleichen Seite gelöst und angezeigt. –

+1

Randnotiz (aka nicht das Update Sie suchen) Sie brauchen nicht 'zu verwenden __()' um Ihre prev_text/next_text Argumente, da Sie nur Markup vorbei statt übersetzbaren Text für Symbole. –

Antwort

0

Die Lösung war, um benutzerdefinierte Abfrage als Argument übergeben, anstatt globale Abfrage zu verwenden.

habe ich versucht, diese Lösung früher auch, aber als ich die globale Abfrage in dem Streckenabschnitt mit dem benutzerdefinierten ersetzen nicht das Ergebnis nicht erhalten.

wurde das Problem behoben, nachdem ein wenig Hilfe von @lucas

Dank bekommen.

ist hier die Lösung. Wenn es jemandem in der Zukunft helfen könnte.

In Seite-ervaringen.php

procare_paging_nav($partnersLoop); 

Benutzerdefinierte Paginierung Funktion:

<?php 
if (! function_exists('procare_paging_nav')) : 
/** 
* Display navigation to next/previous set of posts when applicable. 
* 
* @return void 
*/ 
function procare_paging_nav($partnersLoop) { 


    // Don't print empty markup if there's only one page. 
    if ($partnersLoop->max_num_pages < 2) { 
     return; 
    } 

    $paged  = get_query_var('paged') ? intval(get_query_var('paged')) : 1; 


    $pagenum_link = html_entity_decode(get_pagenum_link()); 
    $query_args = array(); 
    $url_parts = explode('?', $pagenum_link); 

    if (isset($url_parts[1])) { 
     wp_parse_str($url_parts[1], $query_args); 
    } 

    $pagenum_link = remove_query_arg(array_keys($query_args), $pagenum_link); 
    $pagenum_link = trailingslashit($pagenum_link) . '%_%'; 

    $format = $GLOBALS['wp_rewrite']->using_index_permalinks() && ! strpos($pagenum_link, 'index.php') ? 'index.php/' : ''; 
    $format .= $GLOBALS['wp_rewrite']->using_permalinks() ? user_trailingslashit('page/%#%', 'paged') : '?paged=%#%'; 

    // Set up paginated links. 
    $links = paginate_links(array(
     'base'  => $pagenum_link, 
     'format' => $format, 
     'total' => $partnersLoop->max_num_pages, 
     'current' => $paged, 
     'mid_size' => 2, 
     'add_args' => array_map('urlencode', $query_args), 
     'prev_text' => '<i class="fa fa-chevron-left"></i>', 
     'next_text' => '<i class="fa fa-chevron-right"></i>', 
     'type'  => 'list', 
    )); 

    if ($links) : 

    ?> 
    <nav class="navigation paging-navigation" role="navigation"> 
     <?php echo $links; ?> 
    </nav><!-- .navigation --> 
    <?php 
    endif; 
} 
endif; 
?> 
Verwandte Themen