it-swarm.com.de

Wordpress-Paginierung mit get_posts?

Ich muss Anpassungen an einem schrecklich geschriebenen WP - Thema vornehmen, das (ein benutzerdefiniertes Thema, das in Tabellen geschrieben wurde, und fehlerhafter Code).

Das Thema hat mehrere benutzerdefinierte Vorlagen, aber die Paginierung wurde nicht verwendet und get_posts wurde anstelle von query_posts verwendet.

    <?php query_posts('showposts=1'); ?>
    <?php $posts = get_posts('numberposts=10&offset=0&category_name=albertsons, carrs, dominicks, genuardis, heb, kroger, pavillions, publix, randalls,safeway,shop-rite,tom-thumb,vons,whole-foods'); foreach ($posts as $post) : start_wp(); ?>
    <?php static $count2 = 0; if ($count2 == "10") { break; } else { ?>

...

    <?php $count2++; } ?>
    <?php endforeach; ?>

Ich muss die Paginierung aktivieren, um mit get_posts arbeiten zu können, oder die Funktion neu schreiben, um nur query_posts zu verwenden, damit ich 'paged' => get_query_var('page') hinzufügen kann.

Wenn ich versuche, neu zu schreiben, um nur query_posts zu verwenden, bricht die ganze verdammte Sache zusammen.

Aktualisieren:

<?php 
global $wp_query;

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


query_posts(array('posts_per_page' => '3','paged'=>$paged,'category_name'=>'albertsons, carrs, dominicks, genuardis, heb, kroger, pavillions, publix, randalls,safeway,shop-rite,tom-thumb,vons,whole-foods')); ?>
                    ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

Das zeigt die Schleife, aber die Paginierung funktioniert nicht. Wenn ich auf "ältere Beiträge" klicke, ändert sich die URL zu Seite-2, aber der Inhalt ist genau der gleiche.

1
Jason

Das ist alles irgendwie falsch. Verwenden Sie zunächst nicht start_wp(); Ich denke, das wurde vor 4 Jahren abgeschrieben. Zweitens ist Ihre Schleife chaotisch, query_posts dient zum Ändern der Hauptschleife, auch bekannt als get_posts.

Schreiben Sie es also ganz normal mit get_posts oder WP Query.

$args = array( 'numberposts' => 1, 
               'offset'=> 0, 
               'category_name' => 'carrs, dominicks, genuardis, etc', 
                );


$the_query = new WP_Query( $args );

while ( $the_query->have_posts() ) : $the_query->the_post();

$count_posts = $the_query->current_post + 1; // use this to count your posts

//your loop stuff
endwhile;

Wenn Sie nicht sicher sind, wie Ihre Paginierung funktionieren soll, verwenden Sie <?php previous_post(); ?> <?php next_post(); ?> für eine nummerierte Paginierung. Ich empfehle ein Plugin wie WP-PageNavi oder WP-Paginate, das sich einfach über eine Funktion in Ihr Thema integrieren lässt.

http://codex.wordpress.org/Class_Reference/WP_Query
http://codex.wordpress.org/Next_and_Previous_Links

1
Wyck