質問: サイドバーにポストショートコードの内容を表示しますか? ページによってはサイドバーに画像などのコンテンツを表示する必要があります。ページは動的に追加され、サイドバーに表示する必要がある情報はページごとに異なります。だから私は何がどこに行くのか予測することはできません。つまり、ページのコンテンツを通常どおりに(必要なすべてのショートコードを付けて)、次にページの最後に、そのページのサイドバーに表示する必要があるすべての情報を含むショートコードを付けます。元の質問:ショートコードを選択的に表示する(メインコンテンツで抑制し、代わりにサイドバーに表示する)私はそれが「選択的に」ショートコードを表示することが可能であるかどうか疑問に思いました。たとえば、特定のショートコード([sc]と呼びましょう)をページコンテンツ内で指定します。さて、そのページのコンテンツを表示するとき、私はその特定の[sc]ショートコードを抑制したいのですが、そのページのサイドバーからそれを表示したいです。ページのコンテンツには他のショートコードがあります。私は特定の[sc]ショートコードを選択的に表示し、他のものを通常通りに処理したいだけです - すなわち、他のショートコードはページのコンテンツ内で処理されます。それは可能ですか?そしてどうやって?
回答: 私の解決策はjan fabry'sの回答に基づいています。ウィジェットはありませんが、単純なテンプレートファイルがあります。それで、私がしたことは以下です: ページのコンテンツ自体のサイドバーに表示する必要があるすべての情報を[sidebar_content]ショートコードで囲んで指定しました。 functions.phpに以下の関数を指定しました。これは[sidebar_content]のすべての内容を展開しますが、何も表示しませんが、代わりにグローバル変数に保存します。 global $sidebar_content; add_shortcode("sidebar_content", "my_sidebar_content"); function my_sidebar_content($atts, $content = null){ global $sidebar_content; if( !empty($content) ){ $sidebar_content = do_shortcode($content); } return ""; } sidebar.phpにあります。次のようなコードがあります。 global $sidebar_content; if( isset($sidebar_content) && !empty($sidebar_content) ){ echo $sidebar_content; }