ページを作成し、wp-orbit-sliderから以下のショートコードを追加しました
[orbit-slider category="test"]
の内容が欲しい
[orbit-slider category="test"]
ワードプレスが通常行うコンテンツ領域部分ではなく、ヘッダー部分に表示されます。私はheader.phpに短いコードを追加してみましたが、それは動作しますが、同じコンテンツがコンテンツ領域にも複製されます。これを避ける必要があります。どうすればこれを達成できますか?
これは、the_content
フィルタに早くフックして、そこからショートコードタグを取り除くことを試みることで、あなたのために働くかもしれません:
add_filter('the_content', 'ad_filter_the_content',1,1);
function ad_filter_the_content($content) {
// specify page id or array of page ids to include
if (is_page(5)) {
return str_replace('[orbit-slider category="test"]', '', $content);
}
return $content;
}
ショートコードにはPHP呼び出しを使用できます。それはこのように動作します:
echo do_shortcode('[orbit-slider category="test"]');
しかし、私はあなたの質問から、あなたは各ページに異なるショートコードを持っているかもしれないと思います。その場合は、Orbit-Slider用のcategory
を含むページ用のカスタムフィールドを追加してみてください。
もちろん、分類システムのビルド(標準のカテゴリなど)を使用している場合は、カスタムフィールドを使用する必要はありませんが、カテゴリを使用するだけで済みます。私はCategoryversionに最初のCaategoryを使用します - 例外を自分自身でここで処理するようにしてください。
// for the custom field version
$orbitcategory = get_post_meta( get_the_ID(), 'my_orbit_slider', true );
// for the Taxonomy version
$orbitcategory = get_the_category( get_the_ID() );
$orbitcategory = $orbitcategory[0]->name;
$thisslider = '[orbit-slider category="' . $orbitcategory . '"]';
echo do_shortcode( $thisslider );
あなたはこのように大丈夫なはずです。
ショートコードをもう一度コンテンツに入れないでください。