(8/31まで)高価なキッチン用品が30日間試せる

関数

関数一覧の参考リンク

参考 関数リファレンスCodex

ショートコードの作成

functions.php に追記する。

add_shortcode( ショートコード名, 呼び出す関数名 );

コード
function shortcode_RedHelloPrint(){
	$msg = '<p style="color:red;">' . こんにちは . '</p>';
	return $msg;
}
add_shortcode('red_hello', 'shortcode_RedHelloPrint');

上記で作成したショートコードの呼び出し

[red_hello]

こんにちは

ショートコードの作成:引数あり

引数$attsにショートコードで指定した属性情報を受け取る。

コード
function shortcode_ColorHelloPrint($atts){
	$atts = shortcode_atts(array(
				'color' => 'red',	//colorの初期値
				'font-style' => 'normal',
				'font-weight' => 'normal'
			), 
			$atts,
			'color_hello'//ショートコード名。省略可能だが含めるのが推奨
		);
	
	$msg = "<p style=\"color:{$atts['color']}; font-style:{$atts['font-style']}; font-weight:{$atts['font-weight']};\">こんにちは</p>";
	return $msg;
}
add_shortcode('color_hello', 'shortcode_ColorHelloPrint');

上記で作成したショートコードの呼び出し

[color_hello]

こんにちは

[color_hello color='blue']

こんにちは

[color_hello color='green' font-style='italic']

こんにちは

[color_hello color='orange' font-weight=900]

こんにちは

上記例は 'font-style' のように変数名で使えない文字、ハイフン(-)が含まれた文字をキーにしていたため、$atts['font-style']で連想配列から値を取得しているが、extractを使用して変数名に取得する方法もよく見る。

コード
function shortcode_ColorHelloPrint2($atts){
	$atts = shortcode_atts(array(
				'color' => 'red',	//colorの初期値
				'style' => 'normal',
				'weight' => 'normal'
			), 
			$atts,
			'color_hello2'//ショートコード名。省略可能だが含めるのが推奨
		);
	extract($atts);	//連想配列のキーから同名の変数を作成し、値も代入する
	
	$msg = "<p style=\"color:{$color}; font-style:{$style}; font-weight:{$weight};\">こんにちは</p>";
	return $msg;
}
add_shortcode('color_hello2', 'shortcode_ColorHelloPrint2');

上記で作成したショートコードの呼び出し

[color_hello2 color='green' style='italic' weight=900]

こんにちは

参考 shortcode_attsCodex 参考 extractPHP.net

ショートコードの作成:コンテンツを囲む

[ショートコード名]コンテンツ[/ショートコード名]
コード
//テキストを外側から渡してもらって、赤色で出力
function shortcode_ColorStringPrint($atts, $content = null){
	$msg = "<p style=\"color:red;\">{$content}</p>";
	return $msg;
}
add_shortcode('color_string', 'shortcode_ColorStringPrint');
[color_string]あいうえお[/color_string]

あいうえお

引数ありの場合

コード
//テキストを外側から渡してもらって、赤色で出力(引数あり)
function shortcode_ColorStringPrint2($atts, $content = null){
	$atts = shortcode_atts(array(
				'color' => 'red',	//colorの初期値
				'style' => 'normal',
				'weight' => 'normal'
			), 
			$atts,
			'color_string2'//ショートコード名。省略可能だが含めるのが推奨
		);
	extract($atts);	//連想配列のキーから同名の変数を作成し、値も代入する
	
	$msg = "<p style=\"color:{$color}; font-style:{$style}; font-weight:{$weight};\">{$content}</p>";
	return $msg;
}
add_shortcode('color_string2', 'shortcode_ColorStringPrint2');
[color_string2 color='blue' weight='bold']かきくけこ[/color_string2]

かきくけこ

コンテンツにショートコードが含まれる場合

囲むコンテンツにショートコードが含まれる場合、shortcode_unautopを実行することでコンテンツ内のショートコードが全て実行される。

コード
[card_box]
[card_item ...]
[card_item ...]
[card_item ...]
[/card_box]
コード
add_shortcode(
	'card_box', 
	function($atts, $content = null){
		$content = do_shortcode( shortcode_unautop($content) );
		if($content){
			return '<div class="cardbox">' . $content . '</div>';
		}
		return '';
	}
);

テンプレートファイルからショートコードを呼び出す

do_shortcode($content)

使用例

コード
<?php do_shortcode('[red_hello]'); ?>

テーマのディレクトリURLを取得

<?php echo get_template_directory_uri(); ?>

実際に取得されるURL例
https://peralab.com/wp-content/themes/perapera

<?php wp_head(); ?>
</head>タグの直前で使う。
wp_head()を実行しないとプラグインなどで一部機能が動作しなくなる。

参考 wp_headCodex

<?php wp_footer(); ?>
</body>タグの直前で使う。
wp_footer()を実行しないとプラグインなどで一部機能が動作しなくなる。

参考 wp_footerCodex

管理画面で入力された情報を取得 get_bloginfo

bloginfoは結果を直接ブラウザーに表示する。
PHPで変数に取得したい場合はこちらを使う。
ブラウザーに表示する場合はechoを使う。

<?php $bloginfo = get_bloginfo( $show, $filter ); ?>

$show:取得したい項目のキーワード名(初期値は 'name')

$filter:(オプション) 取得した値に適用するフィルターを指定するキーワード。
初期値: 'raw'
'display' - $show に従って取得した値を wptexturize() 関数へ渡してから呼び出し元へ返す。
'raw' - $show に従って取得した値をそのまま返す。

よく使いそうなキーワード
'name' - 管理画面の「設定 > 一般」で設定された「サイトのタイトル」
'description' - 管理画面の「設定 > 一般」で設定された「キャッチフレーズ」
'wpurl' - 管理画面の「設定 > 一般」で設定された「WordPress アドレス (URL)」
'url' - 管理画面の「設定 > 一般」で設定された「サイトアドレス (URL)」を表示するものです。home_url()関数を使用するほうが推奨されている。
'admin_email' - 管理画面の「設定 > 一般」で設定された「メールアドレス」

WordPressロゴ get_bloginfoとget_optionどちらを使うべき? 参考 get_bloginfoCodex

設定の読み込み get_option

<?php get_option( $option, $default ); ?>

WordPressの各種設定を変数に取得する。
書き込み用のupdate_option、削除用のdelete_optionもある。

$変数 = get_option( $option, $default );
$option:(必須)取得するオプションの名前。小文字のみ。
$default:(オプション)値が存在しない場合のデフォルト値。初期値はfalse

例)
$bname = get_option('blogname', 'NO NAME');

オプション名はオプション設定リファレンスを参照。

WordPressロゴ get_bloginfoとget_optionどちらを使うべき? 参考 get_optionCodex 参考 オプション設定リファレンスCodex

設定の変更 update_option

<?php update_option( $option, $new_value, $autoload ); ?>

$option:(必須)設定するオプションの名前
$newvalue:(必須)保存する設定値
$autoload:(オプション)通常は指定しない。「yes」の文字列を指定すると、その設定はWordPress起動時に自動的に読み込まれる。

オプション名はオプション設定リファレンスを参照。

参考 update_optionCodex

設定の変更 delete_option

delete_option($option);
$option:(必須)削除するオプションの名前

オプション名はオプション設定リファレンスを参照。

参考 delete_optionCodex