WP_Site_Health::get_test_file_uploads()publicWP 5.5.0

Tests if 'file_uploads' directive in PHP.ini is turned off.

Метод класса: WP_Site_Health{}

Хуков нет.

Возвращает

Массив. The test results.

Использование

$WP_Site_Health = new WP_Site_Health();
$WP_Site_Health->get_test_file_uploads();

Список изменений

С версии 5.5.0 Введена.

Код WP_Site_Health::get_test_file_uploads() WP 6.4.3

public function get_test_file_uploads() {
	$result = array(
		'label'       => __( 'Files can be uploaded' ),
		'status'      => 'good',
		'badge'       => array(
			'label' => __( 'Performance' ),
			'color' => 'blue',
		),
		'description' => sprintf(
			'<p>%s</p>',
			sprintf(
				/* translators: 1: file_uploads, 2: php.ini */
				__( 'The %1$s directive in %2$s determines if uploading files is allowed on your site.' ),
				'<code>file_uploads</code>',
				'<code>php.ini</code>'
			)
		),
		'actions'     => '',
		'test'        => 'file_uploads',
	);

	if ( ! function_exists( 'ini_get' ) ) {
		$result['status']       = 'critical';
		$result['description'] .= sprintf(
			/* translators: %s: ini_get() */
			__( 'The %s function has been disabled, some media settings are unavailable because of this.' ),
			'<code>ini_get()</code>'
		);
		return $result;
	}

	if ( empty( ini_get( 'file_uploads' ) ) ) {
		$result['status']       = 'critical';
		$result['description'] .= sprintf(
			'<p>%s</p>',
			sprintf(
				/* translators: 1: file_uploads, 2: 0 */
				__( '%1$s is set to %2$s. You won\'t be able to upload files on your site.' ),
				'<code>file_uploads</code>',
				'<code>0</code>'
			)
		);
		return $result;
	}

	$post_max_size       = ini_get( 'post_max_size' );
	$upload_max_filesize = ini_get( 'upload_max_filesize' );

	if ( wp_convert_hr_to_bytes( $post_max_size ) < wp_convert_hr_to_bytes( $upload_max_filesize ) ) {
		$result['label'] = sprintf(
			/* translators: 1: post_max_size, 2: upload_max_filesize */
			__( 'The "%1$s" value is smaller than "%2$s"' ),
			'post_max_size',
			'upload_max_filesize'
		);
		$result['status'] = 'recommended';

		if ( 0 === wp_convert_hr_to_bytes( $post_max_size ) ) {
			$result['description'] = sprintf(
				'<p>%s</p>',
				sprintf(
					/* translators: 1: post_max_size, 2: upload_max_filesize */
					__( 'The setting for %1$s is currently configured as 0, this could cause some problems when trying to upload files through plugin or theme features that rely on various upload methods. It is recommended to configure this setting to a fixed value, ideally matching the value of %2$s, as some upload methods read the value 0 as either unlimited, or disabled.' ),
					'<code>post_max_size</code>',
					'<code>upload_max_filesize</code>'
				)
			);
		} else {
			$result['description'] = sprintf(
				'<p>%s</p>',
				sprintf(
					/* translators: 1: post_max_size, 2: upload_max_filesize */
					__( 'The setting for %1$s is smaller than %2$s, this could cause some problems when trying to upload files.' ),
					'<code>post_max_size</code>',
					'<code>upload_max_filesize</code>'
				)
			);
		}

		return $result;
	}

	return $result;
}