• 投稿日:2023年03月30日 11時04分02秒
  • 更新日:2023年03月30日 11時04分04秒

最初に

WordPressのカスタマイザー設定コードメモ

カスタム設定追加コード

                       
function theme_customizer_topickInfo($wp_customize) {

	//セクション
	$wp_customize->add_section( 'topick', array (
	 'title' => 'トピック',
	 'priority' => 120,
	 'description' => 'お知らせの右横(または下)にリンク付きの画像を設定します。<br>
	                   リンク無しも可能です。',
	));
	
	for($idx = 1; $idx <= 2; $idx++){
	
		$idx_char = str_pad( $idx , 2, 0, STR_PAD_LEFT);
		$settingName = 'topick' . $idx_char . "_img";

		 //画像について
		 $wp_customize->add_setting( $settingName , array (
			$settingName => 'null',
			
		));
		$wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize,  $settingName , array(
			'section' => 'topick',
			'settings' => $settingName,
			'label' =>'画像' . $idx_char,
			'priority' => 60,
		)));

		// 表示位置
		/*
		$ary_position = array("top", "bottom", "left", "right");
		foreach($ary_position as $key => $value){

			$settingName = 'topick' . $idx_char . "_" . $value ;
			$keyName = '画像' . $idx_char . "位置:" . $value . "(px)";

			$wp_customize->add_setting( $settingName , array (
				$settingName => 'null',
			));
			$wp_customize->add_control( $settingName, array(
				'section' => 'topick',
				'settings' => $settingName,
				'label' => $keyName,
				'type' => 'number', 
				'priority' => 60,
			));
		}
		*/

		// リンクについて
		$settingName = 'topick' . $idx_char . "_link";

		$wp_customize->add_setting( $settingName , array (
			$settingName => 'null',
		));
		$wp_customize->add_control( $settingName, array(
			'section' => 'topick',
			'settings' => $settingName,
			'label' =>'リンク' . $idx_char,
			'type' => 'url', 
			'priority' => 60,
		));

		// ホバー時のテキスト
		$settingName = 'topick' . $idx_char . "_text";

		$wp_customize->add_setting( $settingName , array (
			$settingName => 'null',
		));
		$wp_customize->add_control( $settingName, array(
			'section' => 'topick',
			'settings' => $settingName,
			'label' =>'ホバーテキスト' . $idx_char,
			'type' => 'text', 
			'priority' => 60,
		));
	}
	
}
add_action('customize_register', 'theme_customizer_topickInfo');

説明

最後のadd_actionを忘れずに

カスタム設定値取得関数

                       
function get_the_topickInfo(){

	$ary_result = array();

	$ary_position = array("img", "top", "bottom", "left", "right", "link", "text");
	for($idx = 1; $idx <= 2; $idx++){
	
		$idx_char = str_pad( $idx , 2, 0, STR_PAD_LEFT);
		$keyVal = 'topick' . $idx_char . "_";

		foreach($ary_position as $key => $value){

			$settingName = $keyVal . $value;
			$idx_val = get_theme_mod( $settingName );
			if($idx_val == ""){
				continue;
			}elseif($idx_val == null){
				continue;
			}

			$ary_result[$idx][$value] = $idx_val;

		}
		
	}
	return $ary_result;
}