web-dev-qa-db-ja.com

各ページに同じ投稿を表示しているWordpressのページ付け

恐ろしく書かれたWPテーマ(テーブルに書かれたカスタムテーマ、そして悪いコード)を調整する必要があります。

テーマにはいくつかのカスタムテンプレートがありますが、ページネーションは使用されず、get_postsは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; ?>

私は'paged' => get_query_var('page')を追加できるように、ページ付けをget_postsで動作させるか、query_postsのみを使用するように関数を書き換える必要があります

私がquery_postsだけを使うように書き直そうとすると、いまいましいこと全部が壊れます。

改善する方法についての任意の考え?

ありがとう

更新:

<?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(); ?>

どちらでも機能しますが、ページ付けはされません。 "古い投稿"はurl page-2でページをリロードしますが、内容はまったく同じです。つまり、最初のページとまったく同じ投稿が表示されています。

解決済み - 使用する必要があります

1
Jason

あなたはこのようなものでコードを置き換えることができます

<?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;

次に、通常の ポストループ を呼び出します。

if(have_posts()):
  while(have_posts()):the_post();
   the_content() ;//or so on
  endwhile;
endif; 

ところで、私はquery_posts/get_postsに反して WP_Query を使うようにアドバイスします。

それがあなたが始められるようになることを願っています:)

2
sbrajesh