WordPress サイトの特定のページに表示される投稿の数を変更したいと考えています。
ここで次のコード スニペットを見つけました:
$postsPage = $settings["postspage"]; query_posts('posts_per_page='.$postsPage);
事前にお電話ください if (have_posts()) while (have_posts()) the_post()
私は php の初心者ですが、私が試しているのはこれです
... if ( is_front_page()) { $postsPage = $settings["投稿ページ"] 1; }elseif ( is_tag()) { $postsPage = $settings["postspage"] - 2; } それ以外 { $postsPage = $settings["投稿ページ"]; } query_posts('posts_per_page='.$postsPage); ...
しかし、残念ながらそれはうまくいきません。代わりに、WP メニューで設定された 5 つの投稿のうち 1 つではなく、ホームページから 1 つの投稿のみが返されます。 is_front_page に対して $postPage = 6; のように必要な値をハードコーディングすると、正常に動作します。 何らかの理由で、$settings["postspage"]
で指定された値に何も加算/減算できません。値を変更しない場合(else-clause)にも機能します。私は何を取りこぼしたか?
文字列として返される可能性があると考えたので、$settings["postspage"]
の値を整数に変換してみました。私は次のように使用します: $postsPage = (int)$settings["postspage"] 1;
または $postsPage = intval($settings["postspage"]) 1;コード>しかし成功しません。 wordpressの関数とその変数にあまり詳しくないので、投稿数を変更できない理由を探していました。 ヒントをいただければ幸いです。
このコードをどこに置いたのか、
リーリー$settings
を見つける方法は明確ではありませんが、これは機能するはずです。$query
は参照によって渡されるため、それに加えた変更はグローバル クエリ オブジェクトに反映されます。これを返す必要はありません。つまり、elseif
を使用する代わりに、各条件内の関数から安全に戻ることができます。