WordPress:特定のカテゴリの投稿数を異なる方法で設定する方法

Last Updated:2023年09月20日| | コメントを残す

WordPressでカテゴリ、タグなどのアーカイブページに表示されるポスト数は、通常読書設定ページ(設定 » 読む)で指定した設定が適用されます。 XNUMXページあたりに表示する投稿の数に指定した数が、最新の記事ページやカテゴリページなど、アーカイブページに表示される投稿数になります。

WordPress:特定のカテゴリの投稿数を異なる方法で設定する方法

特定のカテゴリページに表示される記事の数を、読み込み設定で指定した数と異なるように設定したい場合は、簡単なコードを使用して可能です。

WordPress:特定のカテゴリの投稿数を異なる方法で設定する方法

たとえば、カテゴリスラグwordpress'と' movie-review'のカテゴリページに表示される文の数を読み込み設定で指定された設定と異なるように表示したい場合は、次のようなコードをテーマの関数ファイルに追加するだけです。

add_filter('pre_get_posts', 'posts_in_category');

function posts_in_category($query){
    if ($query->is_category) {
        if (is_category('wordpress')) {
            $query->set('posts_per_archive_page', 5);
        }

        if (is_category('movie-review')){
            $query->set('posts_per_archive_page', 15);
        }
    }

}

カテゴリスラグは 投稿 » カテゴリで確認が可能です。

チャイルドテーマ(子テーマ)を作成し、チャイルドテーマ内の関数ファイルに追加する必要があり、将来のテーマの更新時に変更/追加は消えずに残ります。

FTP / SFTPにアクセスしてテーマフォルダ(/wp-content/themes /テーマフォルダ名)にあるfunctions.phpファイルの一番下に上記のコードを追加できます。

このような機能をするプラグインとして」Posts Per Category「というプラグインがあったが、2017年度にプラグイン開発者の要請で WordPress プラグインストアから削除されました。

前面ページ(ブログページ)にのみ投稿数を設定する

ホームページを最新の投稿に設定した場合、ホームページ(前面ページ)の投稿数を読み取り設定で指定した数と異なるように設定するには、次のコードを使用できます。

/**
 * Modify the number of posts displayed on the front page (when it's also set as the blog page).
 * If the front page of the website is set to display the latest posts (i.e., it's the blog page),
 * this code will ensure that 12 posts are displayed.
 */
add_filter('pre_get_posts', 'posts_in_home');

function posts_in_home($query) {
    if ($query->is_main_query()) { // Make sure we're modifying the main query
        // Check if it's the blog page or the front page (since they're the same in this case)
        if ($query->is_home() || $query->is_front_page()) {
            $query->set('posts_per_page', 12); // Display 12 posts
        }
    }
}

上記のコードを子テーマの関数ファイルに追加すると、フロントページ(ブログページ)に12の記事が表示されます。 数字は適切に変更してください。

参照


コメントを残す

コメント

割引ニュース
アストラテーマで最大40%割引!
期間限定
You This Coupon Code in Checkout
Click the code to Copy