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