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

/***** 最近更新されたコンテンツをダッシュボードウィジェットとして表示 *****/
/*** 更新された投稿を表示するコールバック関数 ***/
function haup_ccustom_updated_posts_widget() {

	//投稿タイプを変更可能にする
	//20250902 投稿タイプ変数を他のものと共通に変更
	$posttypes = 'post';
	$posttypes = apply_filters('haup_updated_posts_dwidget_posttype_filter', $posttypes);
	//20250902 explodeだけでは空文字などがあった場合に不具合が出る可能性があるので修正
	$post_types_array = array_map('trim', explode(',', $posttypes));
	$post_types_array = array_filter($post_types_array);
	//$post_types_array = explode(',', $posttypes);//「,」で投稿タイプを分割

	//件数を変更可能にする
	$number = '10';
	$num = apply_filters('haup_updated_posts_dwidget_num_filter', $number); 

	//コンテンツの抽出
	//20250902 投稿タイプの指定変数の誤りを修正
	$query_args = array(
		'post_type' => $post_types_array,
		'posts_per_page' => $num, // 表示する投稿数
		'orderby' => 'modified', // 最終更新日でソート
		'order' => 'DESC' // 降順
	);

	$recent_posts = new WP_Query($query_args);//クエリを実行

	//抽出条件分だけ繰り返してリスト化
	if ($recent_posts->have_posts()) {
		echo '<ul>';
		while ($recent_posts->have_posts()) {
			$recent_posts->the_post();
			$modified_date = get_the_modified_date();

			echo '<li>';

			$edit_link = get_edit_post_link(get_the_ID());// 編集リンクを取得

			// 更新日と投稿のステータスを表示
			$draft_title = __('[Draft]','hima-art-utility');
			$published_title = __('[Published]','hima-art-utility');
			$other_title = __('[Others]','hima-art-utility');
			$future_title = __('[Future]','hima-art-utility');
			$private_title = __('[Private]','hima-art-utility');

			if (get_post_status() == 'draft') {//下書きのとき
				echo ' <span style="color: red;font-weight:500;">'.esc_html($modified_date.$draft_title). '</span>';
			}else if(get_post_status() == 'publish'){//公開済みのとき
				echo ' <span style="color: green;font-weight:500;">'.esc_html($modified_date.$published_title). '</span>';
			}else if(get_post_status() == 'future'){//予約投稿のとき
				echo ' <span style="color:blue;font-weight:500;">'.esc_html($modified_date.$future_title). '</span>';
			}else if(get_post_status() == 'private'){//非公開のとき
				echo ' <span style="font-weight:500;">'.esc_html($modified_date.$private_title). '</span>';
			}else{//その他
				echo ' <span style="color: blue;font-weight:500;">'.esc_html($modified_date.$other_title). '</span>';//その他
			}

			echo '<a href="' . esc_url($edit_link) . '">' . esc_html(get_the_title()). '</a>';
			echo '</li>';
		}
		echo '</ul>';
	}else{
		echo '<p>' . esc_html_e('There are no recent updates.','hima-art-utility') . '</p>';
	}

	wp_reset_postdata();
}

/*** ウィジェットをダッシュボードに追加 ***/
function haup_add_custom_updated_posts_widget() {
	$title = __('Recently Updated Posts','hima-art-utility');
	
	wp_add_dashboard_widget(
		'haup_custom_updated_posts_widget',
		$title,
		'haup_ccustom_updated_posts_widget'
	);
}
add_action('wp_dashboard_setup', 'haup_add_custom_updated_posts_widget');

/*** インラインでスタイルを追加 ***/
function haup_add_custom_updated_posts_widget_style(){
$custom_css_pre = "
/* HAUP Update Posts Widget Style */
#haup_custom_updated_posts_widget li{
display: grid;
grid-template-columns: clamp(160px, calc(2vw + 140px), 200px) auto;
column-gap: 10px;
color: #646970;
padding: 4px 12px;
}
#haup_custom_updated_posts_widget li:nth-child(odd) {
background-color: #f6f7f7;
}
#haup_custom_updated_posts_widget ul {
margin: 8px -12px 0 -12px;
}
";

	//スタイルコードを改行なしで整形する
	$custom_css = str_replace(PHP_EOL, '', $custom_css_pre);

	wp_add_inline_style('haup-only-admin-style', $custom_css );
}
add_action('admin_enqueue_scripts','haup_add_custom_updated_posts_widget_style');


/*** 投稿タイプの変更フィルター例 ***/
/*
function custom_post_type_filter() {
 $new_posttype = 'post,page,description_of_hau,recommend_plugin';

 $posttypes = $new_posttype;
 return $posttypes;
}
add_filter('haup_updated_posts_dwidget_posttype_filter','custom_post_type_filter');
*/

/*** 表示数の変更フィルター例 ***/
/*
function custom_num_filter() {
$number = '5';
 return $number;
}
add_filter('haup_updated_posts_dwidget_num_filter','custom_num_filter');
*/