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

/* https://tart.co.jp/wordpress-plugin-original-create/ */
if ( !function_exists( 'haup_is_mobile' ) ) {
	function haup_is_mobile() {
		if (!isset($_SERVER['HTTP_USER_AGENT'])) {
			return false;
		}

		// wp_unslash を使ってエスケープされた文字列を元に戻し、sanitize_text_fieldでサニタイズ
		$user_agent = sanitize_text_field(wp_unslash($_SERVER['HTTP_USER_AGENT']));

		$useragents = array(
			'iPhone', // iPhone
			'iPod', // iPod touch
			'Android.*Mobile', // 1.5+ Android *** Only mobile
			'Android *',
			'Windows.*Phone', // *** Windows Phone
			'dream', // Pre 1.5 Android
			'CUPCAKE', // 1.5+ Android
			'blackberry9500', // Storm
			'blackberry9530', // Storm
			'blackberry9520', // Storm v2
			'blackberry9550', // Storm v2
			'blackberry9800', // Torch
			'webOS', // Palm Pre Experimental
			'incognito', // Other iPhone browser
			'webmate', // Other iPhone browser
			'Mobile.*Firefox', // Firefox OS
			'Opera Mini', // Opera Mini Browser
			'BB10', // BlackBerry 10
		);

		$pattern = '/' . implode('|', $useragents) . '/i';
		return preg_match($pattern, $user_agent);
	}
}


/***** 判別コールバック関数 *****/
/* 投稿とカスタム投稿タイプ */
if ( !function_exists( 'haup_is_single' ) ){
function haup_is_single(){
	$posttypes ='post';
	$posttypes = apply_filters('haup_is_single_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);//「,」で投稿タイプを分割


	$result = in_array(get_post_type(), $post_types_array);

	// pageを除外する
	if (get_post_type() === 'page') {
		$result = false;
	}

	return $result;

}
}

/* フロントページを除く投稿タイプと固定ページの単一ページ */
if ( !function_exists( 'haup_is_single_without_front' ) ){
function haup_is_single_without_front() {
    return  (haup_is_single() || is_page() ) && !is_front_page();
}
}

/* 囲み型ショートコードのコンテンツ前後に入る余分なp、brタグを削除するフィルター */
/* https://stackoverflow.com/questions/13510131/remove-empty-p-tags-from-wordpress-shortcodes-via-a-php-functon */

function haup_remove_shortcode_paragraph($text = '') {
// Replace all the poorly formatted P tags that WP adds by default.
	$tags = array("<p>", "</p>");
	$text = str_replace($tags, "\n", $text);

// Remove any BR tags
	$tags = array("<br>", "<br/>", "<br />");
	$text = str_replace($tags, "", $text);

// Add back in the P and BR tags again, remove empty ones
// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
	return apply_filters('the_content', $text);
}