2015-09-22 16 views
9

sto ancora bloccato su questo tema ..WordPress Blog Impaginazione non funziona

L'impaginazione sul mio blog WordPress non funziona - http://www.example.com/news

Quando si fa clic su un numero di pagina diversa aggiorna l'URL (e titolo della pagina) correttamente ma non mostra post diversi.

Ive ha provato:

  • Disabilitare tutti i plug-in
  • Cambiare la struttura permalink
  • Modifica del numero di post di blog visualizzati in Impostazioni> Lettura
  • Modifica http://www.example.com/recall-news a un percorso diverso per evitare in conflitto con una categoria di post denominata "news"

Nulla ha funzionato ed è per me.

Ho visto molte soluzioni per una query personalizzata, ma sto utilizzando la pagina dei post che hai impostato in Impostazioni> Lettura> Pagina dei post, quindi non ho scritto alcun codice per visualizzare i post su questa pagina.

  • Quale file WordPress devo modificare per correggere l'impaginazione del blog in questo caso? Sto indovinando che posso aggiungere qualcosa a functions.php, ma non ho ancora trovato una soluzione.

AGGIORNAMENTO: Non ho ancora trovato la soluzione. So che posso farlo scrivendo la mia query, ma voglio rimanere con il blog WP predefinito.

+2

Su quale modello/pagina è esattamente questo. Inoltre, pubblica il tuo codice modello. –

+0

Non hai assolutamente bisogno di una query personalizzata. MA, abbiamo bisogno che tu fornisca il codice dal tuo modello del tema che rende la pagina 'recall-news'. Senza di esso, non c'è modo per noi di risolvere o aiutare. –

risposta

1

Controlla il tuo loop WP nel file category.php (aka archive.php). Essa deve contenere le seguenti:

if (have_posts()) : while (have_posts()) : the_post(); 

e rifinito con:

endwhile; endif; 
+0

Siamo spiacenti? Puoi ampliarlo per me? – cpcdev

+0

@pouriya kordaki il suo lavoro ..? – OpenWebWar

0

Ho giocato con le "pagine messaggi" troppo, ma sto ottenendo alcun risultato.

Solo soluzione di lavoro per me è stata una query di custome in combinazione con il plugin Page-Navi.

Nel mio modello ho il seguente codice:

<?php 
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
    $args = array(
     'post_type'   => 'post', 
     'orderby'   => 'date', 
     'order'    => 'DESC', 
     'post_status'  => 'publish', 
     'posts_per_page' => 5, 
     'paged'    => $paged, 
    ); 
    $q = new WP_Query($args); 

    if ($q->have_posts()) { 
     $displaylist = '<div class="list-group">'; 

     while ($q->have_posts()) { 
      $q->the_post(); 

      // build up your entry 

      unset($displayTag); 
     } 

     $displaylist .= '</div>'; 

     echo($displaylist); 

     wp_pagenavi(array('query' => $q)); 

     wp_reset_postdata(); 
    } 
?> 

Con il post_per_page gestisco le voci per sito. Nel ciclo while costruisco le voci che dovrebbero essere mostrate.

0

Puoi provare a utilizzare Wp-Pagenavi per generare l'impaginazione? In questo modo si può almeno controllare se il problema è l'impaginazione di default o solo alcuni errori nella codifica che non riempie la variabile paging correttamente

+0

perché un plug-in per un'impaginazione predefinita? the_posts_pagination() o get_the_posts_pagination() sono già disponibili dal core anche paginate_links(). –

+0

Altri plug-in> aumenta il caricamento della pagina e il recupero del db ... Quindi, se possibile, usa al massimo i metodi del core wp ... – OpenWebWar

0

Prova questa

global $wpdb; 

    $pagenum = isset($_GET['pagenum']) ? absint($_GET['pagenum']) : 1; 
    $limit = 20; 
    $offset = ($pagenum - 1) * $limit; 
    //$entries = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}design_information LIMIT $offset, $limit"); 
    $entries = $wpdb->get_results("Select * From design_information ORDER BY id DESC LIMIT $offset, $limit",ARRAY_A); 

echo '<div class="wrap">'; 
<table class="widefat"> 
    <thead> 
     <tr> 
      <th>SNo.</th><th>Layout</th><th>Org Description</th> 
     </tr> 
    </thead> 

    <tbody> 
     <?php if($entries) { ?> 

      <?php 
      $count = 1; 
      $class = ''; 
    //echo "<pre>"; 
    //print_r($entries); 
    for($i=0;$i<count($entries); $i++) 
    { 

$pid=$entries[$i]['id']; 
       $class = ($count % 2 == 0) ? ' class="alternate"' : ''; 
      ?> 
      <tr<?php echo $class; ?>> 
       <td> 
       <?php echo $entries[$i]['id']; 
       //echo $count; 
       $count++;?> 
      </td> 
<td> 
     <?php echo $entries[$i]['layout'];?> 
    </td> 
    <td> 
     <?php echo $entries[$i]['org_description'];?> 
    </td> 

    </tr> 
</table> 
0

Creare un file di archivio-learning.php nel tuo tema.

Ciò significa post_type è "imparare"

<?php 
 
if (get_query_var('paged')) { 
 
     $paged = get_query_var('paged'); 
 
    } elseif (get_query_var('page')) { 
 
     $paged = get_query_var('page'); 
 
    } else { 
 
     $paged = 1; 
 
    } 
 

 

 
<?php 
 
$custom_args = array(
 
     'post_type'  => 'learning', 
 
     'post_status' => 'public', 
 
     'orderby'  => 'date', 
 
     'order'   =>'DESC',  
 
     'posts_per_page'=>12,//limit 6 
 
     'paged' => $paged 
 
    ); 
 
$wp_query = new WP_Query($custom_args); 
 
$getPosts = get_posts($custom_args); 
 

 
?> 
 
<?php if ($getPosts) : ?> 
 
\t \t \t \t <?php global $post,$wp_query;?> 
 
\t \t \t \t <?php foreach ($getPosts as $post): ?> 
 
\t \t \t \t <?php setup_postdata($post);?> 
 
\t \t \t \t <?php echo "your content here";?> 
 
\t \t \t \t <?php endforeach;?> 
 
\t \t \t \t \t 
 
\t \t \t \t <?php 
 
\t \t \t \t else : 
 
\t \t \t \t \t 
 
\t \t \t \t \t 
 

 
\t \t \t \t endif; 
 
\t \t \t ?> 
 
<div class="pagenation"><?php if (function_exists(custom_pagination)) {custom_pagination($wp_query->max_num_pages,"",$paged);} ?></div></div> 
 
    <?php wp_reset_postdata(); ?>
andare su File functions.php e creare la funzione custom_pagination

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

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

 
    /* 
 
    * This first part of our function is a fallback 
 
    * for custom pagination inside a regular loop that 
 
    * uses the global $paged and global $wp_query variables. 
 
    * 
 
    * It's good because we can now override default pagination 
 
    * in our theme, and use this function in default queries 
 
    * and custom queries. 
 
    */ 
 
    global $paged; 
 
    if (empty($paged)) { 
 
    $paged = 1; 
 
    } 
 
    if ($numpages == '') { 
 
    global $wp_query; 
 
    $numpages = $wp_query->max_num_pages; 
 
    if(!$numpages) { 
 
     $numpages = 1; 
 
    } 
 
    } 
 

 
    /** 
 
    * We construct the pagination arguments to enter into our paginate_links 
 
    * function. 
 
    */ 
 
    
 
    $pagination_args = array(
 
    'base'   =>add_query_arg('page','%#%'), 
 
    'format'   => 'page/%#%', 
 
    'total'   => $numpages, 
 
    'current'   => $paged, 
 
    'show_all'  => False, 
 
    'end_size'  => 1, 
 
    'mid_size'  => $pagerange, 
 
    'prev_next'  => True, 
 
    'prev_text'  => __('&laquo;'), 
 
    'next_text'  => __('&raquo;'), 
 
    'type'   => 'plain', 
 
    'add_args'  => false, 
 
    'add_fragment' => '' 
 
); 
 

 
    $paginate_links = paginate_links($pagination_args); 
 

 
    if ($paginate_links) { 
 
    echo "<nav class='custom-pagination'>"; 
 
     //echo "<span class='page-numbers page-num'>Page " . $paged . " of " . $numpages . "</span> "; 
 
     echo $paginate_links; 
 
    echo "</nav>"; 
 
    } 
 

 
}

1

v'è alcuna garanzia che il vostro il problema è relativo a WordPress. Tuttavia, poiché non hai posto una domanda molto generica, ti darò una risposta molto generale. Questo dovrebbe aiutarti a capire cosa c'è di sbagliato e risolverlo da solo.

  1. Check out underscores. Scaricalo e rivedi i modelli (come index.php, archive.php, ecc.) Per vedere se ti manca qualcosa che include caratteri di sottolineatura. La cosa bella dei caratteri di sottolineatura è che è tutto ciò di cui hai bisogno per creare un tema in esecuzione, senza fronzoli. Quindi, se è lì e non nel tuo codice, potrebbe valere la pena esplorare. Prestare particolare attenzione ai blocchi di codice relativi a have_posts.

  2. Potrebbe non essere in realtà qualcosa di sbagliato nel tema. Prova a testare un altro tema (ad esempio, caratteri di sottolineatura, che hai scaricato in modo conveniente) per vedere se ha la paginazione funzionante e intatta. Se lo fa, allora, sei fortunato ... Ciò significa che devi solo scavare un po 'più a fondo per riconciliare cosa c'è di sbagliato nel tuo codice che è giusto con i trattini bassi.

  3. Se hai scoperto che non è qualcosa di sbagliato nel tuo tema, ma in realtà qualcosa che non va nella configurazione del tuo server, è anche un po 'di sollievo, per così dire. Significa che dovresti teoricamente essere in grado di testare la tua installazione da qualche altra parte, o reinstallare il tuo server, e farlo funzionare. Prima di andare così lontano, prova a reinstallare semplicemente la tua versione di WordPress. Chi lo sa ... Potrebbe funzionare.

1

si dovrebbe passare la "pagina"/"paging" var nella funzione query_post:

if (get_query_var('paged')) { 
$paged = get_query_var('paged'); 
} elseif (get_query_var('page')) { 
$paged = get_query_var('page'); 
} else { 
$paged = 1; 
} 
query_posts(array('paged' => $paged)); 
if (have_posts()) : while (have_posts()) : the_post(); ?> 
<!--Your HTML-->. 
<?php endwhile; endif; wp_reset_query(); ?> 
Problemi correlati