wordpress memory

コードをしらべてみると、以下のとおりユーザ権限がmanage_optionsの時に、memory_limitを設定している事がわかりました

/wp-admin/admin.php

if ( current_user_can( 'manage_options' ) ) {
    @ini_set( 'memory_limit', apply_filters( 'admin_memory_limit', WP_MAX_MEMORY_LIMIT ) );
}

https://blog.e2info.co.jp/2015/08/10/wordpress_memory_limit/

調べた結果、WPのPHP memory_limitデフォルト値は、シングルサイト40M、マルチサイト64M、管理画面256Mに設定されているようです。 これがエラーの原因ですね

/wp-includes/default-constants.php の32行目辺りにmemory_limitを設定するスクリプトがありました。

$current_limit     = @ini_get( 'memory_limit' );
$current_limit_int = wp_convert_hr_to_bytes( $current_limit );
// Define memory limits.
if ( ! defined( 'WP_MEMORY_LIMIT' ) ) {
	if ( false === wp_is_ini_value_changeable( 'memory_limit' ) ) {
		define( 'WP_MEMORY_LIMIT', $current_limit );
	} elseif ( is_multisite() ) {
		define( 'WP_MEMORY_LIMIT', '64M' );
	} else {
		define( 'WP_MEMORY_LIMIT', '40M' );
	}
}
if ( ! defined( 'WP_MAX_MEMORY_LIMIT' ) ) {
	if ( false === wp_is_ini_value_changeable( 'memory_limit' ) ) {
		define( 'WP_MAX_MEMORY_LIMIT', $current_limit );
	} elseif ( -1 === $current_limit_int || $current_limit_int > 268435456 /* = 256M */ ) {
		define( 'WP_MAX_MEMORY_LIMIT', $current_limit );
	} else {
		define( 'WP_MAX_MEMORY_LIMIT', '256M' );
	}
}
// Set memory limits.
$wp_limit_int = wp_convert_hr_to_bytes( WP_MEMORY_LIMIT );
if ( -1 !== $current_limit_int && ( -1 === $wp_limit_int || $wp_limit_int > $current_limit_int ) ) {
	@ini_set( 'memory_limit', WP_MEMORY_LIMIT );
}

http://webty.jp/staffblog/production/post-178/