0

私のindex.phpでは、このコードを使用してページあたりの投稿を制限していますが、問題なく機能します。

$showposts = 5;
$do_not_show_stickies = 1;
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array('category__in' => $cat, 'showposts' => $showposts, 'ignore_sticky_posts' => 1, 'paged' => $paged);

$loop2query = new WP_Query($args);

query_posts($args); if(have_posts()) : while (have_posts()) : the_post(); ?>

<div class="blogpost"> ... </div>

<?php endwhile; endif;
posts_nav_link(); // Navigating the pages with $showposts each. ?>

同じコードがcategory.phpで機能しなかったため、次のように変更しましたが、それでも機能しません。

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

if (have_posts()) { while (have_posts()) { the_post(); ?>
    <div class="blogpost"> ... </div>

<?php } }

else { ?>
    <p>There are no blog posts in this category.</p>
<?php } ?>

<?php posts_nav_link(); // Navigating the pages with $showposts each. ?>

category.phpの行をindex.phpの行と同じになるように変更しようとしましif(have_posts()) : while (have_posts()) : the_post(); ?> [...]たが、何も機能しませんでした。

4

3 に答える 3

5

Wordpressにはこの設定があり、管理領域の[設定]->[読み取り]->[ブログページ]に最大で表示されます。

クエリをカスタム変更する代わりに、これを使用できます。これにより、プロジェクトの今後の保守が少し簡単になる場合があります。

于 2012-11-20T06:35:03.353 に答える
1

posts_per_page引数を使用します(ここではコーデックス

$args = array('category__in' => $cat, 'posts_per_page' => $showposts, 'ignore_sticky_posts' => 1, 'paged' => $paged);
于 2012-11-19T22:36:22.793 に答える
0

最初の例では、実際には2つのクエリがあります:new WP_query、次にquery_posts、。これは冗長であるため、そのうちの1つを削除する必要があります。2番目の例では、逆に、クエリはありません(ただし、このページが呼び出される場所によっては、WordPressがデフォルトでクエリを実行する場合があります)。とにかく、$showposts2番目の例で使用する意味はありません。WordPress if (have_posts())からのデフォルト(ページコードには表示されない)ループを処理するため、または直前に宣言します(通常はでquery_posts())。@Samuelが言っているように、使用する引数はposts_per_pageですが、まだそこにいないと思います。最初にクエリの実行方法を学び始める必要があります。そうすれば、WordPressコーデックスを読むことから始めることができます。query_posts、最初に行くのに最適な場所になります:http: //codex.wordpress.org/Function_Reference/query_posts

于 2012-11-19T23:04:19.813 に答える