質問: WordPressのsingle.phpにて、「takenoko」というショートコードがコンテンツの中にあった場合、 curlでデータ取得する処理をしたいのですが、下記のようにフックをかけても処理が全く反映されませんでした。 var_dump(変数); での検証では、if( has_shortcode( $post->post_content, 'takenoko') ) { の中では出力したのですが、returnより後ろ、または関数(shortcode_custom)の外の場合ですと出力されない様です。 別にコンテンツの内容をいじるわけではないので、add_filter('the_content') じゃなくても良いのですが、 特定のショートコードがコンテンツ内にあるかどうかを判断して、特定の処理をする&処理の中で格納された変数を外の関数でも使えるようにするにはどうすると良いでしょうか? 【追記】 1特定のショートコード([takenoko=""])があったらcurlの処理。 2[takenoko=""]は何個あっても都度ではなく、上記の処理は1回だけ行いたい。 という条件になります。 ``` function shortcode_custom($content){ global $post; if( has_shortcode( $post->post_content, 'takenoko') ) { //やりたい処理(curlを使用したデータ取得) } return $content; } add_filter('the_content','shortcode_custom'); . . function shortcode($atts) { //ここで先ほどのcurlで取得したデータを使いたい。 } ```
回答: 「外の関数でも使える」というかショートコード内から関数を呼び出して、その結果を return すればよいだけでは? もう少し具体的なコードを提示してみてください。