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

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

	/* alt属性のない画像にページタイトルを自動挿入 */
	/* チェックボックス（存在するかどうか） */
	if ( isset( $value['use-auto-alt'] ) && $value['use-auto-alt'] === '1' ) {
		$value['use-auto-alt'] = '1'; // 明示的に '1' を設定
	} else {
		$value['use-auto-alt'] = ''; // チェックされていない場合は空文字を設定
	}

	/* 画像タイトルタグの自動生成 */
	/* チェックボックス（存在するかどうか） */
	if ( isset( $value['add-image-title-tag'] ) && $value['add-image-title-tag'] === '1' ) {
		$value['add-image-title-tag'] = '1'; // 明示的に '1' を設定
	} else {
		$value['add-image-title-tag'] = ''; // チェックされていない場合は空文字を設定
	}

	/* Canonicalタグの出力 */
	/* チェックボックス（存在するかどうか） */
	if ( isset( $value['output-archive-canonical-tag'] ) && $value['output-archive-canonical-tag'] === '1' ) {
		$value['output-archive-canonical-tag'] = '1'; // 明示的に '1' を設定
	} else {
		$value['output-archive-canonical-tag'] = ''; // チェックされていない場合は空文字を設定
	}
	

	/* 構造化データの出力 */
	/* チェックボックス（存在するかどうか） */
	if ( isset( $value['output-schema'] ) && $value['output-schema'] === '1' ) {
		$value['output-schema'] = '1'; // 明示的に '1' を設定
	} else {
		$value['output-schema'] = ''; // チェックされていない場合は空文字を設定
	}

	/*** Xのユーザー名 ***/
	/* テキストフィールド（文字列） */
	if ( isset( $value['schema-x-user-name'] ) && is_string( $value['schema-x-user-name'] ) ) {
		$value['schema-x-user-name'] = sanitize_text_field( $value['schema-x-user-name'] ); // サニタイズ
	} else {
		if ( isset( $original_value['schema-x-user-name'] ) ) {
			$value['schema-x-user-name'] = $original_value['schema-x-user-name']; // 元の値を保持
		} else {
			$value['schema-x-user-name'] = '';
		}
	}

	/*** Facebookのユーザー名 ***/
	/* テキストフィールド（文字列） */
	if ( isset( $value['schema-fb-user-name'] ) && is_string( $value['schema-fb-user-name'] ) ) {
		$value['schema-fb-user-name'] = sanitize_text_field( $value['schema-fb-user-name'] ); // サニタイズ
	} else {
		if ( isset( $original_value['schema-fb-user-name'] ) ) {
			$value['schema-fb-user-name'] = $original_value['schema-fb-user-name']; // 元の値を保持
		} else {
			$value['schema-fb-user-name'] = '';
		}
	}

	/*** Insagramのユーザー名 ***/
	/* テキストフィールド（文字列） */
	if ( isset( $value['schema-insta-user-name'] ) && is_string( $value['schema-insta-user-name'] ) ) {
		$value['schema-insta-user-name'] = sanitize_text_field( $value['schema-insta-user-name'] ); // サニタイズ
	} else {
		if ( isset( $original_value['schema-insta-user-name'] ) ) {
			$value['schema-insta-user-name'] = $original_value['schema-insta-user-name']; // 元の値を保持
		} else {
			$value['schema-insta-user-name'] = '';
		}
	}

	/*** サイトの運営者名 ***/
	/* テキストフィールド（文字列） */
	if ( isset( $value['schema-site-organizer-name'] ) && is_string( $value['schema-site-organizer-name'] ) ) {
		$value['schema-site-organizer-name'] = sanitize_text_field( $value['schema-site-organizer-name'] ); // サニタイズ
	} else {
		if ( isset( $original_value['schema-site-organizer-name'] ) ) {
			$value['schema-site-organizer-name'] = $original_value['schema-site-organizer-name']; // 元の値を保持
		} else {
			$value['schema-site-organizer-name'] = '';
		}
	}

	/*** サイト運営者のURL ***/
	/* テキストフィールド（文字列） */
	if ( isset( $value['schema-site-organizer-url'] ) && is_string( $value['schema-site-organizer-url'] ) ) {
		$value['schema-site-organizer-url'] = sanitize_text_field( $value['schema-site-organizer-url'] ); // サニタイズ
	} else {
		if ( isset( $original_value['schema-site-organizer-url'] ) ) {
			$value['schema-site-organizer-url'] = $original_value['schema-site-organizer-url']; // 元の値を保持
		} else {
			$value['schema-site-organizer-url'] = '';
		}
	}

/*** 投稿で基本となるスキーマタイプの選択 ***/
	/* セレクトボックス */
	if ( isset( $value['select-posts-schema-type'] ) ) {
		//選択肢に合わせてarrayの中身を変更
		if ( in_array( (string) $value['select-posts-schema-type'], array( 'Article', 'BlogPosting', 'NewsArticle' ), true ) ) {
			$value['select-posts-schema-type'] = sanitize_text_field( $value['select-posts-schema-type'] ); // 数値として保存する場合
		} else {
			// エラーメッセージの追加を削除
			$value['select-posts-schema-type'] = isset( $original_value['select-posts-schema-type'] ) ? $original_value['select-posts-schema-type'] : ''; // 元の値を保持
		}
	} else {
		$value['select-posts-schema-type'] = 'Article';
	}

	/* SEOメタタグ設定 */
	/* チェックボックス（存在するかどうか） */
	if ( isset( $value['output-seo-fields'] ) && $value['output-seo-fields'] === '1' ) {
		$value['output-seo-fields'] = '1'; // 明示的に '1' を設定
	} else {
		$value['output-seo-fields'] = ''; // チェックされていない場合は空文字を設定
	}

	/* タイトルの後に文字列を出力 */
	/* チェックボックス（存在するかどうか） */
	if ( isset( $value['output-after-title-text'] ) && $value['output-after-title-text'] === '1' ) {
		$value['output-after-title-text'] = '1'; // 明示的に '1' を設定
	} else {
		$value['output-after-title-text'] = ''; // チェックされていない場合は空文字を設定
	}

	/* タイトルの後に出力する内容の選択 */
	/* セレクトボックス */
	if ( isset( $value['select-after-title-text'] ) ) {
		//選択肢に合わせてarrayの中身を変更
		if ( in_array( (string) $value['select-after-title-text'], array( '1', '2', '3' ), true ) ) {
			$value['select-after-title-text'] = intval( $value['select-after-title-text'] ); // 数値として保存する場合
		} else {
			// エラーメッセージの追加を削除
			$value['select-after-title-text'] = isset( $original_value['select-after-title-text'] ) ? $original_value['select-after-title-text'] : ''; // 元の値を保持
		}
	} else {
		$value['select-after-title-text'] = '1';
	}

	/* タイトルの後に出力する文字列 */
	/* テキストフィールド（文字列） */
	if ( isset( $value['after-title-any-string'] ) && is_string( $value['after-title-any-string'] ) ) {
		$value['after-title-any-string'] = sanitize_text_field( $value['after-title-any-string'] ); // サニタイズ
	} else {
		if ( isset( $original_value['after-title-any-string'] ) ) {
			$value['after-title-any-string'] = $original_value['after-title-any-string']; // 元の値を保持
		} else {
			$value['after-title-any-string'] = '';
		}
	}

	/* ページタイトルと追加文字列の区切り文字 */
	if ( isset( $value['after-title-separate-text'] ) ) {
		//選択肢に合わせてarrayの中身を変更
		if ( in_array( (string) $value['after-title-separate-text'], array( '1', '2', '3' ), true ) ) {
			$value['after-title-separate-text'] = intval( $value['after-title-separate-text'] ); // 数値として保存する場合
		} else {
			// エラーメッセージの追加を削除
			$value['after-title-separate-text'] = isset( $original_value['after-title-separate-text'] ) ? $original_value['after-title-separate-text'] : ''; // 元の値を保持
		}
	} else {
		$value['after-title-separate-text'] = '1';
	}

	/* トップ・ホームのキーワード */
	if ( isset( $value['home-meta-keywords'] ) && is_string( $value['home-meta-keywords'] ) ) {
		$value['home-meta-keywords'] = sanitize_text_field( $value['home-meta-keywords'] ); // サニタイズ
	} else {
		if ( isset( $original_value['home-meta-keywords'] ) ) {
			$value['home-meta-keywords'] = $original_value['home-meta-keywords']; // 元の値を保持
		} else {
			$value['home-meta-keywords'] = '';
		}
	}

	/* トップ・ホームの説明文 */
	if ( isset( $value['home-meta-description'] ) && is_string( $value['home-meta-description'] ) ) {
		$value['home-meta-description'] = sanitize_text_field( $value['home-meta-description'] ); // サニタイズ
	} else {
		if ( isset( $original_value['home-meta-description'] ) ) {
			$value['home-meta-description'] = $original_value['home-meta-description']; // 元の値を保持
		} else {
			$value['home-meta-description'] = '';
		}
	}

	/* ヘッダーへnoindexタグを追加 */
	if ( isset( $value['add-noindex-tag-in-head'] ) && $value['add-noindex-tag-in-head'] === '1' ) {
		$value['add-noindex-tag-in-head'] = '1'; // 明示的に '1' を設定
	} else {
		$value['add-noindex-tag-in-head'] = ''; // チェックされていない場合は空文字を設定
	}

	/* タグアーカイブ */
	if ( isset( $value['add-noindex-tag-for-tag'] ) && $value['add-noindex-tag-for-tag'] === '1' ) {
		$value['add-noindex-tag-for-tag'] = '1'; // 明示的に '1' を設定
	} else {
		$value['add-noindex-tag-for-tag'] = ''; // チェックされていない場合は空文字を設定
	}

	/* カテゴリーアーカイブ */
	if ( isset( $value['add-noindex-tag-for-category'] ) && $value['add-noindex-tag-for-category'] === '1' ) {
		$value['add-noindex-tag-for-category'] = '1'; // 明示的に '1' を設定
	} else {
		$value['add-noindex-tag-for-category'] = ''; // チェックされていない場合は空文字を設定
	}

	/* カスタムタクソノミーアーカイブ */
	if ( isset( $value['add-noindex-tag-for-taxonomy'] ) && $value['add-noindex-tag-for-taxonomy'] === '1' ) {
		$value['add-noindex-tag-for-taxonomy'] = '1'; // 明示的に '1' を設定
	} else {
		$value['add-noindex-tag-for-taxonomy'] = ''; // チェックされていない場合は空文字を設定
	}

	/* 作者アーカイブ */
	if ( isset( $value['add-noindex-tag-for-author'] ) && $value['add-noindex-tag-for-author'] === '1' ) {
		$value['add-noindex-tag-for-author'] = '1'; // 明示的に '1' を設定
	} else {
		$value['add-noindex-tag-for-author'] = ''; // チェックされていない場合は空文字を設定
	}

	/* 日付アーカイブ */
	if ( isset( $value['add-noindex-tag-for-date'] ) && $value['add-noindex-tag-for-date'] === '1' ) {
		$value['add-noindex-tag-for-date'] = '1'; // 明示的に '1' を設定
	} else {
		$value['add-noindex-tag-for-date'] = ''; // チェックされていない場合は空文字を設定
	}

	/* 検索結果 */
	if ( isset( $value['add-noindex-tag-for-search'] ) && $value['add-noindex-tag-for-search'] === '1' ) {
		$value['add-noindex-tag-for-search'] = '1'; // 明示的に '1' を設定
	} else {
		$value['add-noindex-tag-for-search'] = ''; // チェックされていない場合は空文字を設定
	}

	/* カスタム投稿タイプアーカイブ */
	if ( isset( $value['add-noindex-tag-for-cpt'] ) && $value['add-noindex-tag-for-cpt'] === '1' ) {
		$value['add-noindex-tag-for-cpt'] = '1'; // 明示的に '1' を設定
	} else {
		$value['add-noindex-tag-for-cpt'] = ''; // チェックされていない場合は空文字を設定
	}

	/* 404エラー */
	if ( isset( $value['add-noindex-tag-for-404'] ) && $value['add-noindex-tag-for-404'] === '1' ) {
		$value['add-noindex-tag-for-404'] = '1'; // 明示的に '1' を設定
	} else {
		$value['add-noindex-tag-for-404'] = ''; // チェックされていない場合は空文字を設定
	}

	/* メディアアーカイブ */
	if ( isset( $value['add-noindex-tag-for-media'] ) && $value['add-noindex-tag-for-media'] === '1' ) {
		$value['add-noindex-tag-for-media'] = '1'; // 明示的に '1' を設定
	} else {
		$value['add-noindex-tag-for-media'] = ''; // チェックされていない場合は空文字を設定
	}

	/* デフォルト画像 */
	if ( isset( $value['ogp-default-image'] ) && is_string( $value['ogp-default-image'] ) ) {
		$value['ogp-default-image'] = esc_url( $value['ogp-default-image'] ); // サニタイズ
	} else {
		if ( isset( $original_value['ogp-default-image'] ) ) {
			$value['ogp-default-image'] = $original_value['ogp-default-image']; // 元の値を保持
		} else {
			$value['ogp-default-image'] = '';
		}
	}

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