WordPress | 記事ページにだけ表示するショートコード

2023-02-21WordPress ショートコード,WordPress

WordPress | 記事ページにだけ表示するショートコード

ウィジェットなどで記事ページにだけウィジェット等でPHP処理を読み込むショートカットの作成する方法とサンプルコードを紹介しています。

記事ページにだけ表示するショートコード

記事ページでのみ読み込みさせるにはis_single()関数を利用しての条件分岐が可能です。
以下のコードを「functions.php」に記述します。

サンプルコードではWordPressデフォルトである「テキスト」ウィジェットでもショートコードとして表示可能にしています。

function myFunction(){
	if(is_single()){
		ob_start();
		echo 'WordPress';
		return ob_get_clean();
	}
}

// ショートコードの登録
add_shortcode('test', 'myFunction');

// テキストウィジェットでショートコードが動く様にする
add_filter('widget_text', 'do_shortcode');

目的の場所に設置したテキストやHTMLなどのウィジェットに以下のショートコードを追加します。

[test]

上記はショートコードを利用していますが、プラグインなどでウィジェットでのPHPを使える様にしている場合はそのまま記述できます。

特定の記事にのみ表示させるショートコード

また、is_single()関数に因数を付ける事で特定の記事を指定することが可能です。
以下のコードを「functions.php」に記述します。

記事idで指定する場合はis_single()関数の第一引数に記事idをで指定します。

function myFunction(){
	if(is_single(1)){
		ob_start();
		echo 'WordPress';
		return ob_get_clean();
	}
}

// ショートコードの登録
add_shortcode('test', 'myFunction');

// テキストウィジェットでショートコードが動く様にする
add_filter('widget_text', 'do_shortcode');

目的の場所に設置したテキストやHTMLなどのウィジェットに以下のショートコードを追加します。

[test]

記事タイトルで指定する場合はis_single()関数の第一引数に記事タイトルを指定します。

function myFunction(){
	if(is_single('記事タイトル')){
		ob_start();
		echo 'WordPress';
		return ob_get_clean();
	}
}

// ショートコードの登録
add_shortcode('test', 'myFunction');
// テキストウィジェットでショートコードが動く様にする
add_filter('widget_text', 'do_shortcode');

目的の場所に設置したテキストやHTMLなどのウィジェットに以下のショートコードを追加します。

[test]

記事スラッグで指定する事も可能です。
is_single()関数の第一引数に記事スラッグを指定します。

function myFunction(){
	if(is_single('entry-slug')){
		ob_start();
		echo 'WordPress';
		return ob_get_clean();
	}
}

// ショートコードの登録
add_shortcode('test', 'myFunction');
// テキストウィジェットでショートコードが動く様にする
add_filter('widget_text', 'do_shortcode');

目的の場所に設置したテキストやHTMLなどのウィジェットに以下のショートコードを追加します。

[test]

複数の条件を指定する場合は、カンマ区切りで指定してきます。
下記サンプルコードでは記事番号で指定していますが、記事タイトル、スラッグでの指定も可能です。

function myFunction(){
	if(is_single(array( 2, 5, 8 )){
		ob_start();
		echo 'WordPress';
		return ob_get_clean();
	}
}

// ショートコードの登録
add_shortcode('test', 'myFunction');
// テキストウィジェットでショートコードが動く様にする
add_filter('widget_text', 'do_shortcode');

目的の場所に設置したテキストやHTMLなどのウィジェットに以下のショートコードを追加します。

[test]