Je dois apporter des modifications à un thème horriblement écrit WP (thème personnalisé écrit dans des tableaux et code incorrect).
Le thème a plusieurs modèles personnalisés, mais la pagination n'a pas été utilisée et get_posts a été utilisé à la place de query_posts -
<?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; ?>
J'ai besoin que la pagination fonctionne avec get_posts ou que je réécrive la fonction pour qu'elle utilise uniquement query_posts afin de pouvoir ajouter 'paged' => get_query_var('page')
.
Lorsque j'essaie de réécrire pour utiliser uniquement query_posts, tout se passe comme si de rien n'était.
Des idées sur comment améliorer?
Merci
METTRE À JOUR:
<?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(); ?>
Ce qui fonctionne, mais ne pagine pas. "Older posts" rechargera la page avec l'URL page-2, mais le contenu est exactement le même, ce qui signifie que les mêmes messages sont identiques à ceux de la première page.
Résolu - nécessaire d'utiliser
Vous pouvez remplacer le code avec quelque chose comme ça
<?php
global $wp_query;
$limit = get_option('posts_per_page');
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts(array('posts_per_page'=>$limit,'paged'=>$paged,'category_name'=>'albertsons, carrs, dominicks, genuardis, heb, kroger, pavillions, publix, randalls,safeway,shop-rite,tom-thumb,vons,whole-foods'));
/* you may want to uncomment the below two lines if you are using custom page template*/
//$wp_query->is_archive = true;
//$wp_query->is_home = false;
puis appelez normal Post Loop comme
if(have_posts()):
while(have_posts()):the_post();
the_content() ;//or so on
endwhile;
endif;
Btw, je vous conseillerai d'aller contre query_posts/get_posts et d'utiliser WP_Query
J'espère que cela vous aidera à démarrer :)