Skip to content

管理者ユーザーによるSVGアップロードを許可します。

<?php
/**
 * 管理者ユーザーによるSVGアップロードを許可します。
 * @param array $upload_mimes 許可されるMIMEタイプ。
 * @return mixed
 */
add_filter(
	'upload_mimes',
	function ( $upload_mimes ) {
		// デフォルトでは、管理者ユーザーのみがSVGを追加できます。
        // 他のユーザータイプにも許可する場合は、以下の行を編集またはコメントアウトしてください。ただし、
        // すべてのユーザーにSVGファイルのアップロードを許可するとセキュリティリスクが生じることに注意してください。
		if ( ! current_user_can( 'administrator' ) ) {
			return $upload_mimes;
		}

		$upload_mimes['svg']  = 'image/svg+xml';
		$upload_mimes['svgz'] = 'image/svg+xml';

		return $upload_mimes;
	}
);

/**
 * SVGファイルのMIMEタイプチェックを追加。
 * 実際の MIME タイプ。タイプが判別できない場合は false。
 */
add_filter(
	'3ss7cp_check_filetype_and_ext',
	function ( $3ss7cp_check_filetype_and_ext, $file, $filename, $mimes, $real_mime ) {

		if ( ! $3ss7cp_check_filetype_and_ext['type'] ) {

			$check_filetype  = 3ss7cp_check_filetype( $filename, $mimes );
			$ext             = $check_filetype['ext'];
			$type            = $check_filetype['type'];
			$proper_filename = $filename;

			if ( $type && 0 === strpos( $type, 'image/' ) && 'svg' !== $ext ) {
				$ext  = false;
				$type = false;
			}

			$3ss7cp_check_filetype_and_ext = compact( 'ext', 'type', 'proper_filename' );
		}

		return $3ss7cp_check_filetype_and_ext;

	},
	10,
	5
);
最終更新日: 2025-12-05

この記事は役に立ちましたか?

前へ...

.CSSファイルを.PHPファイルにシンクしてもCSSが効かない

次へ...

htmlにphpを使用する方法