tag:crieit.net,2005:https://crieit.net/tags/upload_per_page/feed 「upload_per_page」の記事 - Crieit Crieitでタグ「upload_per_page」に投稿された最近の記事 2021-05-06T23:40:30+09:00 https://crieit.net/tags/upload_per_page/feed tag:crieit.net,2005:PublicArticle/17069 2021-05-06T23:40:30+09:00 2021-05-06T23:40:30+09:00 https://crieit.net/posts/wordpress-admin-edit-list-per-page-20210506 WordPress 管理画面の一覧ページ当たりに表示される件数を増やす <p>WordPress の管理画面の中で、記事一覧ページとメディア一覧ページで1ページ当たりの表示される件数を増やす方法についてメモ。</p> <h2 id="コード"><a href="#%E3%82%B3%E3%83%BC%E3%83%89">コード</a></h2> <p>早速ですがコードは以下。テーマの <code>functions.php</code> に記述するかプラグインとしてインストールするかどちらでも。</p> <pre><code class="php"><?php // 投稿・固定ページ・カスタム投稿の一覧ページで有効 function variable_posts_per_page ($posts_per_page) { return 100; } add_filter('edit_posts_per_page', 'variable_posts_per_page', 10, 1); // メディア一覧ページで有効 function variable_attachment_per_page ($media_per_page) { return 100; } add_filter('upload_per_page', 'variable_attachment_per_page', 10, 1); </code></pre> <p>フィルターフックを2つほど追加することで実現できました。なお、上述の例では共に1ページ当たり100件とました。</p> <h2 id="備考"><a href="#%E5%82%99%E8%80%83">備考</a></h2> <p>上述のフィルターフックについていくつか気付いた点を書き留めておきます。</p> <ul> <li><strong>要微調整</strong> <ul> <li>スペックやによって、データの量などに応じては表示件数が50件でも一覧表示でエラーを起こすことがある</li> <li>300件では一括削除の際のGETリクエストのURIが長すぎて怒られることがある</li> </ul></li> <li><strong><code>edit_{$post_type}_per_page</code></strong> <ul> <li>ドキュメント(<a target="_blank" rel="nofollow noopener" href="https://developer.wordpress.org/reference/hooks/edit_post_type_per_page/">edit_{$post_type}_per_page | Hook | WordPress Developer Resources</a>)では <code>edit_post_per_page</code> の仲間として <code>edit_attachment_per_page</code>, <code>edit_post_per_page</code>, <code>edit_page_per_page</code> が例として挙げられています</li> <li>しかし、 <code>edit_posts_per_page</code> だけで投稿一覧ページだけでなく、固定ページ一覧ページやカスタム投稿一覧ページまで効力を発揮しました</li> <li>「固定ページだけ」のときは <code>edit_pages_per_page</code> 、といったように「のみ」という場合は使い分け、全体で構わない場合は <code>edit_posts_per_page</code> だけで良い、という感じの使い分けになりそうです</li> </ul></li> <li><strong>s</strong> <ul> <li>上述で <code>edit_attachment_per_page</code>, <code>edit_post_per_page</code>, <code>edit_page_per_page</code> を挙げましたし、ドキュメントやコアファイル(<a target="_blank" rel="nofollow noopener" href="https://github.com/WordPress/WordPress/blob/af4b043a693fc7178ef8a1fcd0402f14fba0a040/wp-admin/includes/post.php#L1170">WordPress/post.php at af4b043a693fc7178ef8a1fcd0402f14fba0a040 · WordPress/WordPress · GitHub</a>)でもそう書かれています</li> <li>しかし、実際は edit_attachment<strong>s</strong>_per_page, edit_post<strong>s</strong>_per_page でした。おそらく edit_page_per_page も edit_page<strong>s</strong>_per_page ではないかと思われます( <code>edit_pages_per_page</code> については未検証)</li> </ul></li> <li>メディア一覧ページ <ul> <li>上述で <code>edit_attachments_per_page</code> があったためこれが該当するのかと思いきや、効果なし</li> <li>メディア一覧ページのフィルターフックは <code>upload_per_page</code> でした</li> </ul></li> </ul> <p>特に <strong>s</strong> は気を付けないと見逃すので注意 (いずれも WordPress 5.7.1 で検証)。</p> <ul> <li><a target="_blank" rel="nofollow noopener" href="https://core.trac.wordpress.org/ticket/14135">#14135 (edit_posts_per_page) – WordPress Trac</a></li> </ul> <p>2010年の <code>edit_posts_per_page</code> と <code>edit_post_per_page</code> についての Trac がありましたが、議論されているコードは <code>wp-admin/includes/template.php</code> 内のもので今回の <code>wp-admin/includes/post.php</code>, <code>wp_edit_posts_query</code> とは別の場所のコードなので直接の関係はなさそうです。</p> <h2 id="参考"><a href="#%E5%8F%82%E8%80%83">参考</a></h2> <ul> <li><a target="_blank" rel="nofollow noopener" href="https://on-ze.com/archives/3484">【WordPress】管理画面の「投稿一覧」と「固定ページ一覧」の最大表示数を変更する方法。 - 株式会社オンズ</a></li> <li><a target="_blank" rel="nofollow noopener" href="https://developer.wordpress.org/reference/hooks/edit_posts_per_page/">edit_posts_per_page | Hook | WordPress Developer Resources</a></li> <li><a target="_blank" rel="nofollow noopener" href="https://developer.wordpress.org/reference/hooks/edit_post_type_per_page/">edit_{$post_type}_per_page | Hook | WordPress Developer Resources</a></li> <li><a target="_blank" rel="nofollow noopener" href="https://developer.wordpress.org/reference/hooks/upload_per_page/">upload_per_page | Hook | WordPress Developer Resources</a></li> <li><a target="_blank" rel="nofollow noopener" href="https://github.com/WordPress/WordPress/blob/af4b043a693fc7178ef8a1fcd0402f14fba0a040/wp-admin/includes/post.php#L1170">WordPress/post.php at af4b043a693fc7178ef8a1fcd0402f14fba0a040 · WordPress/WordPress · GitHub</a></li> </ul> arm-band