ログイン
WordPress でページごとの投稿数を動的に変更する方法
P粉256487077
P粉256487077 2023-09-02 09:13:54
0
1
332

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の関数とその変数にあまり詳しくないので、投稿数を変更できない理由を探していました。 ヒントをいただければ幸いです。

P粉256487077
P粉256487077

全員に返信 (1)
P粉153503989

このコードをどこに置いたのか、$settingsを見つける方法は明確ではありませんが、これは機能するはずです。

リーリー

$queryは参照によって渡されるため、それに加えた変更はグローバル クエリ オブジェクトに反映されます。これを返す必要はありません。つまり、elseifを使用する代わりに、各条件内の関数から安全に戻ることができます。

いいねを押す+0
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート
    私たちについて 免責事項 Sitemap
    PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!