<?php if ( !defined( 'ABSPATH' ) ) exit;//PHPの宣言と直接アクセスの拒否

function haumenu_sanitize_optimize_other($value){
	$value = (array) $value;
	$original_value = get_option('hautility-option-05-optimize'); // 元の値を保持

/* 検索フォーム内の全角スペースを半角へ変換 */
	/* チェックボックス（存在するかどうか） */
	if ( isset( $value['use-search-optimize'] ) && $value['use-search-optimize'] === '1' ) {
		$value['use-search-optimize'] = '1'; // 明示的に '1' を設定
	} else {
		$value['use-search-optimize'] = ''; // チェックされていない場合は空文字を設定
	}

	/* ゴミ箱が自動で空にならないようにする */
	/* チェックボックス（存在するかどうか） */
	if ( isset( $value['disable-trash-auto-cleanup'] ) && $value['disable-trash-auto-cleanup'] === '1' ) {
		$value['disable-trash-auto-cleanup'] = '1'; // 明示的に '1' を設定
	} else {
		$value['disable-trash-auto-cleanup'] = ''; // チェックされていない場合は空文字を設定
	}

	/*** リビジョン数の指定 ***/
	/* 機能の有効化 */
	/* チェックボックス（存在するかどうか） */
	if ( isset( $value['enable-set-revisions'] ) && $value['enable-set-revisions'] === '1' ) {
		$value['enable-set-revisions'] = '1'; // 明示的に '1' を設定
	} else {
		$value['enable-set-revisions'] = ''; // チェックされていない場合は空文字を設定
	}

	/* リビジョン数 */
	/* 数値 */
	if ( isset( $value['set-revisions-num'] ) && $value['set-revisions-num'] !== '' ) {
		$num_value = intval( $value['set-revisions-num'] );
        
		// 0以上、または -1 のみを許可するロジック
		// -1 より小さい値（-2など）が入力されたら、標準の -1 に補正
		if ( $num_value < -1 ) {
			$value['set-revisions-num'] = -1;
		} else {
			$value['set-revisions-num'] = $num_value;
		}
	} else {
		// 未入力、または項目自体がない場合は「-1（無制限）」をデフォルトにする
		$value['set-revisions-num'] = -1;
	}

	/* 適用する投稿タイプ配列 */
	/* 配列 */
	if ( isset( $value['set-revisions-posttype'] ) && is_array( $value['set-revisions-posttype'] ) ) {
		// 配列の各要素（投稿タイプ名）をサニタイズして、不正な値を排除
		$value['set-revisions-posttype'] = array_map( 'sanitize_key', $value['set-revisions-posttype'] );
		// 空の要素があれば削除
		$value['set-revisions-posttype'] = array_filter( $value['set-revisions-posttype'] );
	} else {
		// チェックが一つもついていない場合は空の配列を保持
		$value['set-revisions-posttype'] = array();
	}

	/* 標準のサイトマップ機能を無効にする */
	/* チェックボックス（存在するかどうか） */
	if ( isset( $value['disable-default-sitemap'] ) && $value['disable-default-sitemap'] === '1' ) {
		$value['disable-default-sitemap'] = '1'; // 明示的に '1' を設定
	} else {
		$value['disable-default-sitemap'] = ''; // チェックされていない場合は空文字を設定
	}

	/* 作者ページを除外する */
	/* チェックボックス（存在するかどうか） */
	if ( isset( $value['default-sitemap-exclude-autor'] ) && $value['default-sitemap-exclude-autor'] === '1' ) {
		$value['default-sitemap-exclude-autor'] = '1'; // 明示的に '1' を設定
	} else {
		$value['default-sitemap-exclude-autor'] = ''; // チェックされていない場合は空文字を設定
	}

	/* タグページを除外する */
	/* チェックボックス（存在するかどうか） */
	if ( isset( $value['default-sitemap-exclude-tags'] ) && $value['default-sitemap-exclude-tags'] === '1' ) {
		$value['default-sitemap-exclude-tags'] = '1'; // 明示的に '1' を設定
	} else {
		$value['default-sitemap-exclude-tags'] = ''; // チェックされていない場合は空文字を設定
	}

	/* カテゴリーページを除外する */
	/* チェックボックス（存在するかどうか） */
	if ( isset( $value['default-sitemap-exclude-categories'] ) && $value['default-sitemap-exclude-categories'] === '1' ) {
		$value['default-sitemap-exclude-categories'] = '1'; // 明示的に '1' を設定
	} else {
		$value['default-sitemap-exclude-categories'] = ''; // チェックされていない場合は空文字を設定
	}

	/*** カスタムタクソノミーの除外 ***/
	/* テキストフィールド（文字列） */
	if ( isset( $value['default-sitemap-exclude-taxonomies'] ) && is_string( $value['default-sitemap-exclude-taxonomies'] ) ) {
		$value['default-sitemap-exclude-taxonomies'] = sanitize_text_field( $value['default-sitemap-exclude-taxonomies'] ); // サニタイズ
	} else {
		if ( isset( $original_value['default-sitemap-exclude-taxonomies'] ) ) {
			$value['default-sitemap-exclude-taxonomies'] = $original_value['default-sitemap-exclude-taxonomies']; // 元の値を保持
		} else {
			$value['default-sitemap-exclude-taxonomies'] = '';
		}
	}

	/* カスタム投稿タイプの除外 */
	/* テキストフィールド（文字列） */
if ( isset( $value['default-sitemap-exclude-cpt'] ) && is_string( $value['default-sitemap-exclude-cpt'] ) ) {
		$value['default-sitemap-exclude-cpt'] = sanitize_text_field( $value['default-sitemap-exclude-cpt'] ); // サニタイズ
	} else {
		if ( isset( $original_value['default-sitemap-exclude-cpt'] ) ) {
			$value['default-sitemap-exclude-cpt'] = $original_value['default-sitemap-exclude-cpt']; // 元の値を保持
		} else {
			$value['default-sitemap-exclude-cpt'] = '';
		}
	}

	/* WordPress側のzlib圧縮を無効にする*/
	/* チェックボックス（存在するかどうか） */
	if ( isset( $value['disable-zlib-complession'] ) && $value['disable-zlib-complession'] === '1' ) {
		$value['disable-zlib-complession'] = '1'; // 明示的に '1' を設定
	} else {
		$value['disable-zlib-complession'] = ''; // チェックされていない場合は空文字を設定
	}

	/* ---------- ここまでに項目ごとの記述をする ---------- */
	return $value;//値を返す
}