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]
ディスカッション
コメント一覧
まだ、コメントがありません