2024年06月13日

WP関数:add_shortcode()


この関数の説明

WP関数の add_shortcode() は、ショートコードと、ショートコードが指定された時のコールバック関数を定義します。

投稿文書中にあるショートコードに対応するPHPを実行する時に利用します。

 


関数

add_shortcode( $shortcode , $func )

 


パラメータ

$shortcode文字列必須

投稿の本文から検索するショートコード

 

$func関数名必須

ショートコードが見つかった時に実行するコールバック関数

 


戻り値

この関数は値を返しません。

 


事例

1.単純なケース(引数がない場合)

①本文中にショートコードを記述します。

【s_code01】

 メモ

上記の【】[](角括弧)です。

[]の中で使える文字は下記になります。

①英数小文字

②_(アンダーバー)

②上記のショートコードを処理するプログラムをfunctions.phpに記述します。

function sumple01(){
	return 'ショートコードを実行しました';
}
add_shortcode('s_code01','sumple01');

又は

function sumple01(){
	ob_start();                                  // バッファスタート
		echo 'ショートコードを実行しました'; // バッファへの書き込み
	return ob_get_clean();                  // コールバック関数終了時に出力
}
add_shortcode('s_code01','sumple01');

③文書が表示される時にショートコードの所でファンクションが実行され下記が表示されます。

ショートコードを実行しました

 

2.指定したphpファイルを読み込んで実行する(引数がある場合)

①本文中にショートコードを記述します。

load_sample file='/javascript/animation/show_hide/fade'

 メモ

上記の【】[](角括弧)です。

ショートコードが「load_sample」で引数が「file='/javascript/animation/show_hide/fade'」です。

尚、引数は連想配列(キー+データ)として関数に渡されます。

②上記のショートコードを処理するプログラムをfunctions.phpに記述します。

function get_php($atts) {
  ob_start();                                            // バッファリングスタート 
  	get_template_part("/sample/$atts[file]"); // sampleフォルダにある指定ファイルを読み込む
  return ob_get_clean();                            // add_shortcode完了時に上記関数を実行する
}
add_shortcode('load_sample', 'get_php');

 メモ

3行目で読み込まれるファイルは「sample\javascript\animation\show_hide\fade.php」です。

又、上記で読み込まれるPHPファイルには下記が定義されています。

<button type='button' class='next06' style='padding:5px 10px;'>次へ</button>
<div class='slide_target' style='position:relative;margin-top:5px;'>
	<img class='img_item06'  style='width:300px;position:absolute;top:0;left:0;' src='https://nw2.mywire.org/wp-content/uploads/2020/12/crown.jpg'>
	<img class='img_item06'  style='width:300px;position:absolute;top:0;left:0;' src='https://nw2.mywire.org/wp-content/uploads/2020/12/alphard.jpg'>
	<img class='img_item06'  style='width:300px;position:absolute;top:0;left:0;' src='https://nw2.mywire.org/wp-content/uploads/2020/12/86.jpg'>
	<img class='img_item06'  style='width:300px;position:absolute;top:0;left:0;' src='https://nw2.mywire.org/wp-content/uploads/2021/12/supra.jpg'>
</div>
<script>
	$(function(){
		var slide_no = 0;
		$('.img_item06').css('display' , 'none');              // 画像を総て非表示にする
		$('.img_item06').eq(slide_no).css('display' , 'block');// 先頭の画像を表示する
		$('.next06').click(function(){
			$('.img_item06').eq(slide_no).hide('fade',2000);// 現在の画像をフェードで非表示(2秒)
			slide_no = slide_no + 1;
			if(slide_no >= 4){slide_no = 0}
			$('.img_item06').eq(slide_no).show('fade',2000);// 次の画像をはフェードで表示(2秒)
		});
	});
</script>

上記のショートコードが実行された結果は下記になります。

 

 

 

 

 

 

 


関数一覧
  • 1.WPのエスケープ処理
  • 2.WPプログラムの基本
  • 3.ヘッダ/フッタ/サイドバで使われる関数
  • 4.DBからの読込関数
  • 5.一般テンプレートの中で使われる関数
  • 6.その他のWP関数
  • add_shortcode()
  • bloginfo()
  • body_class()
  • date_i18n()
  • dynamic_sidebar()
  • edit_post_link()
  • esc_attr()
  • esc_html_e()
  • esc_html()
  • esc_url()
  • get_ancestors()
  • get_cat_ID()
  • get_cat_name()
  • get_category_link()
  • get_category_parents()
  • get_category()
  • get_footer()
  • get_header()
  • get_home_url()
  • get_post_format()
  • get_post_meta()
  • get_post_thumbnail_id()
  • get_query_var()
  • get_search_query()
  • get_sidebar()
  • get_site_url()
  • get_stylesheet_directory_uri()
  • get_stylesheet_uri()
  • get_template_directory_uri()
  • get_template_part()
  • get_the_category()
  • get_the_content()
  • get_the_date()
  • get_the_excerpt()
  • get_the_ID()
  • get_the_modified_date()
  • get_the_modified_time()
  • get_the_permalink()
  • get_the_post_thumbnail()
  • get_the_tags()
  • get_the_time()
  • get_the_title()
  • get_uploaded_header_images()
  • get_year_link()
  • has_category()
  • has_custom_logo()
  • has_header_image()
  • has_header_video()
  • has_nav_menu()
  • has_post_thumbnail()
  • has_tag()
  • header_image()
  • home_url()
  • is_admin()
  • is_category()
  • is_date()
  • is_front_page()
  • is_home()
  • is_main_query()
  • is_page()
  • is_search()
  • is_single()
  • language_attributes()
  • the_category()
  • the_content()
  • the_custom_header_markup()
  • the_custom_logo()
  • the_date()
  • the_excerpt()
  • the_ID()
  • the_modified_date()
  • the_modified_time()
  • the_permalink()
  • the_post_thumbnail()
  • the_search_query()
  • the_tags()
  • the_time()
  • the_title()
  • update_post_meta()
  • wp_get_attachment_image_src()
  • wp_nav_menu()
  • WP_Query()