Fatal error: Allowed memory size of XXXXXXX bytes exhausted (tried to allocate XXXXXX bytes) in …
WordPressの投稿一覧画面で、「Fatal error: Allowed memory size of XXXXXXX bytes exhausted (tried to allocate XXXXXX bytes) in …」と表示されてしまい、投稿一覧が開けなくなりました。
「Fatal error: Allowed memory size of」とは?
「Fatal error: Allowed memory size of」とは、「メモリ不足でアプリケーションを実行できない」…という意味のようです。
投稿一覧画面だけエラーで開けないような状態になっているのと、/includes/class-wp-list-table.phpにエラーが表示されているということなので、投稿一覧の件数が多すぎでメモリ不足となり表示できていない?ということが考えられそうです。
phpのメモリ設定を変更
php.iniの編集を行い、php.iniにメモリリミットを追加します。
※思わぬトラブルに発生したり画面が真っ白になる可能性があるのでご注意ください。
memory_limit =
memory_limit = で上限を変更します。
memory_limit = 16M
memory_limit = 128M
-1にすると上限なし、になるようです。
※iniファイルを扱うと、何が起こるか分かりませんので操作にはくれぐれもご注意ください。
投稿一覧が表示されました!
無事に表示されるようになりました!
WP List Tableとは?
今回のエラーが発生していた「WP List Table」とは?
WP_List_Tableの役割
関数リファレンス/WP List Table – WordPress Codex 日本語版
このクラスはWordPressの様々な管理画面上にあるリストテーブルを生成するために使われます。この機能を実装することは、Ajaxで動的に変更できる点と将来的にWordPressによってフックされる点において利点があります。このクラスはまた、拡張・オーバーライドすることによって開発者も利用することができます。
エラーが起きていた1446には「handle_row_actions」なる関数がありました。
protected function handle_row_actions( $item, $column_name, $primary ) {
return $column_name === $primary ? '<button type="button" class="toggle-row"><span class="screen-reader-text">' . __( 'Show more details' ) . '</span></button>' : '';
}
Generates and display row actions links for the list table.
WP_List_Table::handle_row_actions() | Method | WordPress …
wp-config.php ファイルに設定をする
WordPress本体のメモリ上限も設定を変更してみます。
WP_MEMORY_LIMIT
PHPの使用メモリ上限値
WP_MAX_MEMORY_LIMIT
管理者・管理画面でのメモリ上限値
define('WP_MEMORY_LIMIT', '512M');
define( 'WP_MAX_MEMORY_LIMIT', '512M' );
※WP_MEMORY_LIMITの設定値よりもphp.iniの方がサイズが大きければ無効になるようですが、念のため設定してみました。
まとめ
投稿一覧に対して出力されるようなので、やはりメモリ不足が原因と思われます。投稿件数が多すぎたのかもしれません。
Fatal error: Allowed memory size of・・・が表示された場合は、WordPressのメモリ設定を見直してみましょう。
分かりました!試してみます。
また何か分かりましたら、追記していきたいと思います!
ご参考ください😃
※php.iniファイルやwp-config.php ファイルを扱うと、何が起こるか分かりませんので操作にはくれぐれもご注意ください。