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

//if( isset( GetOP05_optimize()['disable-trash-auto-cleanup'] ) && GetOP05_optimize()['disable-trash-auto-cleanup'] ==1){
	
//}

/***** 標準サイトマップの無効化 *****/
if( isset( GetOP05_optimize()['disable-default-sitemap'] ) && GetOP05_optimize()['disable-default-sitemap'] ==1){
	remove_action( 'init', 'wp_sitemaps_get_server' );
}

/***** 作者アーカイブリンクの除外 *****/
function haup_disable_sitemap_users($provider, $name) {
	return ($name == 'users') ? false : $provider;
}
if( isset( GetOP05_optimize()['default-sitemap-exclude-autor'] ) && GetOP05_optimize()['default-sitemap-exclude-autor'] ==1){
add_filter('wp_sitemaps_add_provider', 'haup_disable_sitemap_users', 10, 2);
}

/***** タグアーカイブリンクの除外 *****/
function haup_disable_sitemap_tags($taxonomies) {
	//必要な分だけ追加
	unset($taxonomies['post_tag']); //タグ

	return $taxonomies;
}
if( isset( GetOP05_optimize()['default-sitemap-exclude-tags'] ) && GetOP05_optimize()['default-sitemap-exclude-tags'] ==1){
add_filter('wp_sitemaps_taxonomies', 'haup_disable_sitemap_tags');
}

/***** カテゴリーアーカイブリンクの除外 *****/
function haup_disable_sitemap_categories($taxonomies) {
	//必要な分だけ追加
	unset($taxonomies['category']); //タグ

	return $taxonomies;
}
if( isset( GetOP05_optimize()['default-sitemap-exclude-categories'] ) && GetOP05_optimize()['default-sitemap-exclude-categories'] ==1){
add_filter('wp_sitemaps_taxonomies', 'haup_disable_sitemap_categories');
}



/***** カスタムタクソノミーリンクの除外 *****/
function haup_disable_sitemap_specific_taxonomy($taxonomies) {
	// オプションから除外するタクソノミーのスラグを取得
	$excluded_taxonomies = '';

	if(isset( GetOP05_optimize()['default-sitemap-exclude-taxonomies'] )){
		$excluded_taxonomies = GetOP05_optimize()['default-sitemap-exclude-taxonomies'] ;
	}
    
    
	// 除外するタクソノミーが設定されている場合
	if ($excluded_taxonomies) {
		// コンマ区切りのスラグを配列に変換
		$excluded_taxonomies_array = explode(',', $excluded_taxonomies);
        
		// 除外リストに基づいてタクソノミーを削除
		foreach ($excluded_taxonomies_array as $slug) {
			// スラグの空白をトリム
			$slug = trim($slug);
			// 該当タクソノミーを除外
			if (isset($taxonomies[$slug])) {
				unset($taxonomies[$slug]);
			}
		}
	}

	return $taxonomies;
}
add_filter('wp_sitemaps_taxonomies', 'haup_disable_sitemap_specific_taxonomy');

/***** カスタム投稿タイプリンクの除外 *****/
function haup_disable_sitemap_specific_cpt($post_types) {
	$excluded_post_types = '';

	// オプションから除外する投稿タイプのスラグを取得
	if(isset( GetOP05_optimize()['default-sitemap-exclude-cpt'] )){
		$excluded_post_types = GetOP05_optimize()['default-sitemap-exclude-cpt'] ;
	}
    
	// 除外する投稿タイプが設定されている場合
	if ($excluded_post_types) {
		// コンマ区切りのスラグを配列に変換
		$excluded_post_types_array = explode(',', $excluded_post_types);

		// 除外リストに基づいて投稿タイプを削除
		foreach ($excluded_post_types_array as $slug) {
			// スラグの空白をトリム
			$slug = trim($slug);
			// 該当投稿タイプを除外
			if (isset($post_types[$slug])) {
				unset($post_types[$slug]);
			}
		}
	}

	return $post_types;
}
add_filter('wp_sitemaps_post_types', 'haup_disable_sitemap_specific_cpt');