CTAを増やすと、データベースが肥大化しちゃいやすいので標準では1つのみとしています。
カテゴリーごとに出し分けるためには、子テーマでのカスタマイズが必要です。
CTAを出力するのはinsert_cta
という関数なので子テーマのfunctions.phpにてこれを書き換えます。
WordPressのin_category()
という条件分岐の関数を使えば「特定のカテゴリーに該当する記事のみ」という条件分岐が可能です。
参考:便利なWordPressの条件分岐16パターン
具体的には、以下のようにCTA1とCTA2を作成し、if(in_category(表示させたいカテゴリーIDをarrayで指定))
で、カテゴリー別に表示を切り分けるようにします。
コードの中のカテゴリーIDやテキストや画像URLなど(★の部分)は手書きで修正する必要があります。
テーマ本体の機能を上書きすることになるので、カスタマイザーで入力したテキストや選択画像は無視され、★の部分に入力したテキストが出力されるようになります。
function insert_cta() { if (!get_option('enable_cta')) return; $exclude_cat = explode(',', get_option('no_cta_cat')); if (!in_category($exclude_cat)) return;
?>
<!--CTA1-->
<?php if(in_category( array('★カテゴリーID(半角数字)★', '★カテゴリーID(半角数字)★') )) : ?> <div class="cta" style="background: <?php echo get_theme_mod('cta_background_color', '#c8e4ff'); ?>;"> <h3 style="color: <?php echo get_theme_mod('cta_bigtxt_color', '#333'); ?>;"> ★見出し★ </h3> <p class="cta-img"> <img src="★画像URL★" /> </p> <p class="cta-descr" style="color: <?php echo get_theme_mod('cta_smltxt_color', '#333'); ?>;"> ★文章★ </p> <p class="cta-btn"> <a class="raised" href="★ボタンのリンク先URL★" style="background: <?php echo get_theme_mod('cta_btn_color', '#ffb36b'); ?>;">★ボタンテキスト★</a> </p> </div>
<?php endif; ?>
<!--END CTA1-->
<!--CTA2-->
<?php if(in_category( array('★カテゴリーID(半角数字)★', '★カテゴリーID(半角数字)★') )) : ?> <div class="cta" style="background: <?php echo get_theme_mod('cta_background_color', '#c8e4ff'); ?>;"> <h3 style="color: <?php echo get_theme_mod('cta_bigtxt_color', '#333'); ?>;"> ★見出し★ </h3> <p class="cta-img"> <img src="★画像URL★" /> </p> <p class="cta-descr" style="color: <?php echo get_theme_mod('cta_smltxt_color', '#333'); ?>;"> ★文章★ </p> <p class="cta-btn"> <a class="raised" href="★ボタンのリンク先URL★" style="background: <?php echo get_theme_mod('cta_btn_color', '#ffb36b'); ?>;">★ボタンテキスト★</a> </p> </div>
<?php endif; ?>
<!--END CTA2-->
<?php }
よろしくおねがいします。
WordPressテーマSANGOの質問
記事によっては、異なったCTAを表示させたい
CTAなんですが、基本はどの記事にも同じCTAでいいのですが、あるカテゴリだけ別のCTAを表示させたり、ある記事だけ個別のCTAを表示させたりしたいのですが、そのような事はできないものでしょうか?
カスタマイズのヒントだけでも教えて頂けますと嬉しいです。