質問編集履歴

1 理想の働きについて追記致しました。

lenlen

lenlen score 44

2017/09/05 23:16  投稿

【WordPress】特定のショートコードがあったら処理を読み込みたい
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
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で取得したデータを使いたい。
}
```
  • PHP

    31322 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • WordPress

    12247 questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る