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

ウィジェットなどで記事ページにだけウィジェット等でPHP処理を読み込むショートカットの作成方法です
記事ページでのみ読み込みさせるにはis_single()を利用しての条件分岐が可能です
サンプルコードではWordPressデフォルトである「テキスト」ウィジェットでもショートコードとして表示可能にしています
目次
記事ページにだけ表示するショートコード
functions.php
function test_function(){
if(is_single()){
ob_start();
echo 'WordPress';
return ob_get_clean();
}
}
//ショートコードの登録
add_shortcode('test', 'test_function');
//テキストウィジェットでショートコードが動く様にする
add_filter('widget_text', 'do_shortcode');
ウォジェットのテキスト・カスタムHTMLブロックなど
[test]
上記はショートコードを利用していますが、プラグインなどでウィジェットでのPHPを使える様にしている場合はそのまま記述できます
if(is_single()){
echo 'WordPress';
}
特定の記事にのみ表示させるショートコード
is_single()に因数を付ける事で特定の記事を指定できます
記事idで指定する方法
functions.php
function test_function(){
if(is_single(1)){
ob_start();
echo 'WordPress';
return ob_get_clean();
}
}
//ショートコードの登録
add_shortcode('test', 'test_function');
//テキストウィジェットでショートコードが動く様にする
add_filter('widget_text', 'do_shortcode');
ウォジェットのテキスト・カスタムHTMLブロックなど
[test]
記事タイトルで指定する方法
functions.php
function test_function(){
if(is_single('記事タイトル')){
ob_start();
echo 'WordPress';
return ob_get_clean();
}
}
//ショートコードの登録
add_shortcode('test', 'test_function');
//テキストウィジェットでショートコードが動く様にする
add_filter('widget_text', 'do_shortcode');
ウォジェットのテキスト・カスタムHTMLブロックなど
[test]
記事スラッグで指定する方法
functions.php
function test_function(){
if(is_single('entry-slug')){
ob_start();
echo 'WordPress';
return ob_get_clean();
}
}
//ショートコードの登録
add_shortcode('test', 'test_function');
//テキストウィジェットでショートコードが動く様にする
add_filter('widget_text', 'do_shortcode');
ウォジェットのテキスト・カスタムHTMLブロックなど
[test]
複数の条件を指定する方法
オプション因数を配列にする事で複数条件での分岐が可能です
例ではIDが2または4、8の記事にのみ「WordPress」と表示されます
functions.php
function test_function(){
if(is_single(array( 2, 5, 8 )){
ob_start();
echo 'WordPress';
return ob_get_clean();
}
}
//ショートコードの登録
add_shortcode('test', 'test_function');
//テキストウィジェットでショートコードが動く様にする
add_filter('widget_text', 'do_shortcode');
ウォジェットのテキスト・カスタムHTMLブロックなど
[test]
ディスカッション
コメント一覧
まだ、コメントがありません