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/
参考サイト
大変助かりました、、ありがとうございます🥺🙏
- 【WordPress】管理画面の投稿表示件数の初期値をすべてのユーザー・投稿タイプで一括変更
- 【WordPress】管理画面内の投稿一覧ページで表示される記事数をfunctions.phpから変更する