web-dev-qa-db-ja.com

WP_Queryで投稿数を制限すると、予期しない結果が生じる

以下は10の投稿を表示することになっています。

時にはそれは11、時には12、そして時には望ましい10の投稿を表示します。 posts_per_pageshowpostsまたはnumberpostsに交換した場合も同様に動作します。

問題をどこで検索する必要がありますか。

<ul>
    <? wp_reset_query(); ?> 
    <?  $args = array(
        'orderby'           => 'Rand',
        'posts_per_page'    => '10',
    );
    $query_footerFavorite = new WP_Query($args);

    while ($query_footerFavorite->have_posts()) : $query_footerFavorite->the_post(); ?>

        <li>
            <a href="<? the_permalink(); ?>" title="<? the_title_attribute(); ?>">
                <? the_title(); ?>
            </a>
        </li>

    <? endwhile; ?>
    <? wp_reset_query(); ?>                 
</ul>

編集:posts_per_pageに問題があると思われるため、print_r($query_footerFavorite)を参照してください。

WP_Query Object ( [query_vars] => Array ( [orderby] => Rand [posts_per_page] => 10 [error]
1
Ben

posts_per_pageの期待される動作はスティッキーな投稿を数えないことです。これは'ignore_sticky_posts' => 1で解決できますが、投稿はメニューの一番上に固定されません。 ( 付箋投稿用のtracチケット でこの問題は議論されています。)

これ のようないくつかの回避策がありますが、それらはすべて私には少しハックを感じます。個人的には、期待される振る舞いを扱い、stickyポストクラスをスタイルするようにしています。

WP2.1とshowpostsget_posts()にのみ有効なパラメータであるように思われるのでnumberpostsは非推奨です。 (私は確かにその理由ははっきり分からないが、コーデックスにその問題についての言及はない。)

2
mrwweb