// 指定した時間外の場合は、メッセージを表示
// 時間は、YYYY/MM/DD HH:MM:SS の形式で指定
// [exec_outside_the_datetime starting_datetime="YYYY/MM/DD HH:MM:SS" ending_datetime="YYYY/MM/DD HH:MM:SS"]〜[/exec_outside_the_datetime]
function exec_outside_the_datetime ( $atts, $content = null ) {
  $atts = shortcode_atts( array(
    'starting_datetime' => '2024/09/02 12:00:00',
    'ending_datetime' => '2025/01/07 17:00:00',
  ), $atts );
  $current_datetime = current_time( 'Y/m/d H:i:s' );
  $specified_starting_datetime = $atts[ 'starting_datetime' ];
  $specified_ending_datetime = $atts[ 'ending_datetime' ];
  if ( $specified_starting_datetime !== '' && $specified_ending_datetime !== '' ) {
    if ( strtotime( $current_datetime ) < strtotime( $specified_starting_datetime ) || strtotime( $current_datetime ) > strtotime( $specified_ending_datetime ) ) {
      return do_shortcode( $content );
    }
  } elseif ( $specified_starting_datetime !== '' ) {
    if ( strtotime( $current_datetime ) < strtotime( $specified_starting_datetime ) ) {
      return do_shortcode( $content );
    }
  } elseif ( $specified_ending_datetime !== '' ) {
    if ( strtotime( $current_datetime ) > strtotime( $specified_ending_datetime ) ) {
      return do_shortcode( $content );
    }
  }
  return '';
}
// 指定した時間内の場合は、メッセージを表示
// 時間は、YYYY/MM/DD HH:MM:SS の形式で指定
// [exec_inside_the_datetime starting_datetime="YYYY/MM/DD HH:MM:SS" ending_datetime="YYYY/MM/DD HH:MM:SS"]〜[/exec_inside_the_datetime]
function exec_inside_the_datetime ( $atts, $content = null ) {
  $atts = shortcode_atts( array(
    'starting_datetime' => '2024/09/02 12:00:00',
    'ending_datetime' => '2025/01/07 17:00:00',
  ), $atts );
  $current_datetime = current_time( 'Y/m/d H:i:s' );
  $specified_starting_datetime = $atts[ 'starting_datetime' ];
  $specified_ending_datetime = $atts[ 'ending_datetime' ];
  if ( $specified_starting_datetime !== '' && $specified_ending_datetime !== '' ) {
    if ( strtotime( $current_datetime ) >= strtotime( $specified_starting_datetime ) && strtotime( $current_datetime ) <= strtotime( $specified_ending_datetime ) ) {
      return do_shortcode( $content );
    }
  } elseif ( $specified_starting_datetime !== '' ) {
    if ( strtotime( $current_datetime ) >= strtotime( $specified_starting_datetime ) ) {
      return do_shortcode( $content );
    }
  } elseif ( $specified_ending_datetime !== '' ) {
    if ( strtotime( $current_datetime ) <= strtotime( $specified_ending_datetime ) ) {
      return do_shortcode( $content );
    }
  }
  return '';
}
add_shortcode( 'exec_outside_the_datetime', 'exec_outside_the_datetime' );
add_shortcode( 'exec_inside_the_datetime', 'exec_inside_the_datetime' );