web-dev-qa-db-fra.com

Ajouter la pagination à ma boucle personnalisée

Des conseils sur la mise en page dans ma boucle ci-dessous et je vous dois une bière ou deux. J'ai trouvé comment extraire les articles les mieux notés par vote à partir d'un plug-in personnalisé et les exposer avec un décompte, mais la pagination m'a laissé perplexe. Je suis un autodidacte ici, donc toute aide serait grandement appréciée.

Je visais 6 messages par page, puis utilisez la pagination si nécessaire. Deux posts sont affichés et après quoi une nouvelle section de code est insérée avec un décompte, le décompte fonctionne, tout fonctionne sauf la pagination.

Je ne sais pas comment cela s'intègre

'$wp_query->query('showposts=6'.'&paged='.$paged); 

quand j'utilise déjà

DESC LIMIT 6 OFFSET 0

dans ma requête ...

<?php global $wpdb;
$query_sql = "SELECT like_pid FROM " . $wpdb->prefix ."likes_count ORDER BY like_count DESC LIMIT 6 OFFSET 0";
$query_result = $wpdb->get_col( $wpdb->prepare ($query_sql, OBJECT));
if ($query_result) {
foreach ($query_result as $post_id) {
$post = &get_post( $post_id );
setup_postdata($post); ?>

<?php $count++;
if ($count%2== 0) : ?>

<-- do the loop, count out two articles -->

<?php else : ?>

<-- do something after every two articles -->

<?php endif;?>

<?php } ?>
<?php } ?> //ugly but works

<div class="next"> <?php next_posts_link('&raquo;' ,0); ?></div>
<div class="previous"> <?php previous_posts_link('&laquo;' ,0); ?></div>
1
DOA

Cela devrait obtenir le décalage pour vous, et à partir de là, c'est une simple question d'ajustement de votre requête

$offset = "0";
$no_of_posts = the_posts_per_page( false ); //Number of posts to display on each page
if (preg_match('/page/', $_SERVER['REQUEST_URI'])) {
    $uri = explode('/', $_SERVER['REQUEST_URI']);
    foreach ($uri as $key=>$value) {
        if ($value == "") {
        unset($uri[$key]);
        }
    }
    $offset = (array_pop($uri) * $no_of_posts) - $no_of_posts;
}
1
mor7ifer