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

/*** ページ先頭へDiv ID「#hau-page-head」を出力 ***/
/* https://developer.wordpress.org/reference/functions/wp_body_open/ */
if ( !function_exists( 'haup_add_hau_page_head_id_insert_to_body' ) ){
function haup_add_hau_page_head_id_insert_to_body() {
	echo '<div id="hau-page-head"></div>';
}
}
add_action( 'wp_body_open', 'haup_add_hau_page_head_id_insert_to_body' );

/***** 指定したタグ上に「ページ上部へ戻る」リンクを出力 *****/
function haup_add_back_to_top_content_before_sp_tag($the_content) {
//プラグインオプションからの設定変更
	//出力する要素の指定
	if(isset( GetOP12_addcontent()['auto-top-link-element'] )){
		$element_set = absint(GetOP12_addcontent()['auto-top-link-element']);
	}else{
		$element_set = '';
	}

	if(empty($element_set) || $element_set == '1'){
		$element_type = 'h2';
	}elseif($element_set == '2'){
		$element_type = 'section';
	}elseif($element_set == '3'){
		$element_type = 'h3';
	}elseif($element_set == '4'){
		$element_type = 'h4';
	}elseif($element_set == '5'){
		$element_type = 'h5';
	}elseif($element_set == '6'){
		$element_type = 'h6';
	}

	//出力するコンテンツの種類
	if(isset( GetOP12_addcontent()['auto-top-link-posttype'] )){
		$show_post_type = absint(GetOP12_addcontent()['auto-top-link-posttype']);
	}else{
		$show_post_type = '';
	}

	if(empty($show_post_type) || $show_post_type == '1'){
		//すべての投稿
		$display_post_type = is_singular('post');
	}elseif($show_post_type == '2'){
		//すべての投稿とトップページを除く固定ページ
		$display_post_type = ( is_single() || is_page() ) && !is_front_page();
	}elseif($show_post_type == '3'){
		//固定ページを除くすべての投稿タイプ
		$display_post_type = haup_is_single();
	}elseif($show_post_type == '4'){
		//トップページを除くすべての投稿タイプ
		$display_post_type = haup_is_single_without_front();
	}

	//リンク文字列の変更
	if(isset( GetOP12_addcontent()['auto-top-link-text'] )){
		$change_text = esc_html(GetOP12_addcontent()['auto-top-link-text']);
	}else{
		$change_text = '';
	}

	if(empty($change_text)){
		$output_text =  sanitize_text_field(__('Go To Page Top&nbsp;&#129093;','hima-art-utility'));
	}else{
		$output_text =  sanitize_text_field($change_text);
	}

//変数の指定
	//リンクに表示する文字列(必要ないと思うけど一応エスケープ処理)
	//マーク選びに役立つサイト https://www.amp-what.com/
		$bc_text = esc_html($output_text);
	//クリック時の遷移先ID
		$target = esc_html('#hau-page-head');
	//反応させるHTMLタグの指定
	//h2.h3...sectionなどの中から1つ指定
		$heading = $element_type;

	//リンクの整形
	//文字の前にアイコンフォントを使う場合は「'.bc_text」の前へHTMLタグで挿入
	//文字の後ろにアイコンフォントを使う場合は「bc_text.'」の後ろへHTMLタグで挿入
	$bc = '<aside class="top-scroll-inline"><a href="'.$target.'">'.$bc_text.'</a></aside>';

	//自動挿入するタグの正規表現を整形
	$tag = '/<'.$heading.'.*?>.+?<\/'.$heading.'>/i';

//該当箇所を置き換え
//「$bc」が挿入されているとリンクを出力するので必要に応じて変更
if ( $display_post_type ) {//固定ページ以外の個別ページ
//指定タグが本文中にあるかどうかで判断
if ( preg_match_all( $tag, $the_content, $tags ,PREG_UNMATCHED_AS_NULL)) {
	if ( $tags[0] ) {//配列があるかのチェック（不要かも．．）
		//1番目の指定タグを置き換え
			if(isset( GetOP12_addcontent()['show-auto-top-link-1'] ) && GetOP12_addcontent()['show-auto-top-link-1'] == 1 ){
				if ( $tags[0][0] ) {
					$the_content  = str_replace($tags[0][0], $bc.$tags[0][0], $the_content);
				}
				}else{
				if ( $tags[0][0] ) {
					$the_content  = str_replace($tags[0][0], $tags[0][0], $the_content);
				}
			}

		//2番目の指定タグを置き換え
		if(isset($tags[0][1])){
			if(isset( GetOP12_addcontent()['show-auto-top-link-2'] ) && GetOP12_addcontent()['show-auto-top-link-2'] == 1 ){
				if ( $tags[0][1] ) {
					$the_content  = str_replace($tags[0][1], $bc.$tags[0][1], $the_content);
				}
				}else{
				if ( $tags[0][1] ) {
					$the_content  = str_replace($tags[0][1], $tags[0][1], $the_content);
				}
			}
		}

		//3番目の指定タグを置き換え
		if(isset($tags[0][2])){
			if(isset( GetOP12_addcontent()['show-auto-top-link-3'] ) && GetOP12_addcontent()['show-auto-top-link-3'] == 1 ){
				if ( $tags[0][2] ) {
					$the_content  = str_replace($tags[0][2], $bc.$tags[0][2], $the_content);
				}
				}else{
				if ( $tags[0][2] ) {
					$the_content  = str_replace($tags[0][2], $tags[0][2], $the_content);
				}
			}
		}

		//4番目の指定タグを置き換え
		if(isset($tags[0][3])){
			if(isset( GetOP12_addcontent()['show-auto-top-link-4'] ) && GetOP12_addcontent()['show-auto-top-link-4'] == 1 ){
				if ( $tags[0][3] ) {
					$the_content  = str_replace($tags[0][3], $bc.$tags[0][3], $the_content);
				}
				}else{
				if ( $tags[0][3] ) {
					$the_content  = str_replace($tags[0][3], $tags[0][3], $the_content);
				}
			}
		}

		//5番目の指定タグを置き換え
		if(isset($tags[0][4])){
			if(isset( GetOP12_addcontent()['show-auto-top-link-5'] ) && GetOP12_addcontent()['show-auto-top-link-5'] == 1 ){
				if ( $tags[0][4] ) {
					$the_content  = str_replace($tags[0][4], $bc.$tags[0][4], $the_content);
				}
				}else{
				if ( $tags[0][4] ) {
					$the_content  = str_replace($tags[0][4], $tags[0][4], $the_content);
				}
			}
		}

	}
}
}

//コンテンツを返却
	return $the_content;

}
add_filter('the_content','haup_add_back_to_top_content_before_sp_tag',11);