質問: array('りんご','ぶどう'); } return $content; } //ショートコード function kudamono_shortcode($atts) { extract( shortcode_atts( array( 'type' => '', ), $atts ) ); extract($GLOBALS); return $data; } add_shortcode("kudamono", "kudamono_shortcode"); ``` このように、記事ページが表示去れる時、特定のショートコードがコンテンツ内にあった場合、1度だけ処理を行い、$dataの値をショートコードの中で使いたいのですが、$dataの値がショートコードの中まで引き継げていません。 add_filterのthe_contentを使うとreturn以外の値は他の関数では使うことができないのでしょうか?
回答: 未テストですが、こういう感じで出来るような気がします。 1. 外部読込用データはカスタムフィールドに入れておく 2. functions.php ではなく `the_content();` を使うテンプレートの部分直前で外部読込 3. 無名関数でアクションフック用関数を作り、それに読み込んだものを渡し、無名関数を変数に入れておく 4. `add_filter('the_content', $fn);` `the_content();` `remove_filter('the_content', $fn);` 【WordPressのアクションフックで無名関数に引数を渡す - Qiita】 【PHP: 無名関数 - Manual】