WordPressのsingle.phpにて、「takenoko」というショートコードがコンテンツの中にあった場合、
curlでデータ取得する処理をしたいのですが、下記のようにフックをかけても処理が全く反映されませんでした。
var_dump(変数); での検証では、if( has_shortcode( $post->post_content, 'takenoko') ) { の中では出力したのですが、returnより後ろ、または関数(shortcode_custom)の外の場合ですと出力されない様です。
別にコンテンツの内容をいじるわけではないので、add_filter('the_content') じゃなくても良いのですが、
特定のショートコードがコンテンツ内にあるかどうかを判断して、特定の処理をする&処理の中で格納された変数を外の関数でも使えるようにするにはどうすると良いでしょうか?
【追記】
①特定のショートコード([takenoko=""])があったらcurlの処理。
②[takenoko=""]は何個あっても都度ではなく、上記の処理は1回だけ行いたい。
という条件になります。
PHP
1function shortcode_custom($content){ 2 3 global $post; 4 5 if( has_shortcode( $post->post_content, 'takenoko') ) { 6 7 //やりたい処理(curlを使用したデータ取得) 8 9 } 10 11 return $content; 12 13} 14add_filter('the_content','shortcode_custom'); 15 16. 17. 18 19function shortcode($atts) { 20 21//ここで先ほどのcurlで取得したデータを使いたい。 22 23} 24
回答3件
あなたの回答
tips
プレビュー