当サイトは、アフィリエイト広告を利用しています

WordPress|管理画面のカスタム投稿一覧の表示件数をfunctions.phpで変更する

WordPressは投稿タイプごとに表示オプションを用意してくれていて(投稿の一覧ページ上部にあります)そこから表示件数を変更することができます。

しかし、今回は

  • プラグインを導入すると一緒にカスタム投稿が作成され
  • かつ表示オプションが開かない(おそらくプラグイン側で禁止している?)

というパターンのため、finctions.phpに記述して管理画面の投稿一覧の表示件数を調整していくことになりました。

管理画面ではなくサイトの表示側の表示件数の制御であればたくさん情報があったのですが、管理画面の投稿一覧の表示件数に関しては一筋縄ではいかなかったので、備忘がてら書いておきます〜✍️

何が困ったかというと

pre_get_postsを使って管理画面側も表示件数を変更する方法が結構多くヒットしたのですが、これだと管理画面のページネーションが連動しないのですよね。。

それだと困るぞ〜っと色々調べていたら、edit_posts_per_pageなるものがあることを知りました。

「全ての投稿タイプ」の表示件数をfunctions.phpで変更したい場合

全ての投稿タイプの表示件数を一律で100件にする場合はこちら。

function custom_news_posts_per_page($posts_per_page) {
   return 100; // 1ページに表示したい件数
}
add_filter('edit_posts_per_page', 'custom_news_posts_per_page');

「特定の投稿タイプ」の表示件数をfunctions.phpで変更したい場合

投稿タイプ「news」のみ表示件数を100件にする場合はこちら。

get_current_screen関数って初めて知ったのですが、現在の画面オブジェクトを取得する関数だそうです。(何それ?って方はこの下のおまけをご覧ください📚)

  function custom_news_posts_per_page( $posts_per_page ) {
    $current_screen = get_current_screen();
    if ( $current_screen && $current_screen->post_type === 'news' ) {
      $posts_per_page = 100; // カスタム投稿newsで1ページに表示したい件数
    }
      return $posts_per_page;
    }
  add_action( 'edit_posts_per_page', 'custom_news_posts_per_page' );

おまけ:get_current_screen関数をわかりやすく教えて、ってAIに聞いてみたよ

get_current_screen()関数は、WordPressの管理画面で現在表示されているスクリーン(画面)の情報を取得するための関数です。この関数を使用すると、現在のスクリーンのID、ベース、タイプ、オブジェクトなどの情報を取得することができます。これにより、現在のスクリーンに関連する処理や条件分岐を行うことができます。例えば、特定のスクリーンでのみ特定の処理を実行する場合などに使用されます。

この関数はWordPressのコアファイルに定義されており、こちらで詳細な情報を確認することができます。

https://wpdocs.chat/

参考サイト

大変助かりました、、ありがとうございます🥺🙏

RELATED POST

関連記事

WordPressで自動生成される投稿者アーカイブを無効化する方法
WordPressで制作したWebサイト全体を非公開にする|プラグイン「Password Protected」の使い方
【備忘】WordPressテーマ「JIN」でのvimeo拡大表示不具合について(safari)