JavaScript

【wordpress】カテゴリー毎に画面のスタイルを変える方法【小技】

どうも、katです。

突然ですが、wordpressでカテゴリーごとにページのスタイルを変えたいっていうことってありませんか?

例えば、趣味とお金のカテゴリーがあるけど、それぞれでトップ画像や文字のスタイルを変えたい!とかですね。

今回は、そういう時に使える小技をご紹介します!

function.phpを修正

カテゴリーごとのスタイルは、function.phpに記述していきます。

カテゴリーが「$(‘.cps-post-cat’).text()」で取得できることを利用します。

function foot_customtags() {
echo <<< EOM
<script>
$(function(){
    if ($('.cps-post-cat').text() == 'お金') {
        /**** お金カテゴリーの場合のスタイルをここにJavaScriptで記述します。****/
    }
});
</script>
EOM;
}
add_action( 'wp_footer', 'foot_customtags' );

〜解説〜

if ($('.cps-post-cat').text() == 'お金') {

「お金」というカテゴリーの場合はこのif文の中に記載した内容が適用されます

お金以外の場合はテーマで設定した内容が適用されます。

適用例

それでは実際にkatのブログで適用しているものを参考に見ていきましょう。

katのブログでは以下の内容でスタイルを変更しています。

function foot_customtags() {
echo <<< EOM
<script>
$(function(){
    if ($('.cps-post-cat').text() == 'お金') {
        // お金カテゴリーの場合に以下を適用します。

        // 背景画像を指定
        $('#main-image a img').attr('src', 'https://katblog.manadream.net/wp-content/uploads/2019/11/katblog-money-top-image.png');
        // メインタイトル
        $(".main-image-text").text("KATのブログ@金融");
        // サブタイトル
        $(".main-image-text-sub").text("現役サラリーマンがお金の有益情報を発信します");
        // メインタイトルにスタイル適用
        $(".main-image-text").css({
            "color": "#331907"
        });
        // サブタイトルにスタイル適用
        $(".main-image-text-sub").css({
            "color": "#331907"
        });
        // メインタイトルの影の設定
        $(".top-image-text-option-shadow").css({
            "text-shadow": "4px 2px 16px #cdf532",
            "text-shadow": "4px -2px 16px #cdf532"
        });
        // サブタイトルの影の設定
        $(".top-image-subtext-option-shadow").css({
            "text-shadow": "4px 2px 16px #cdf532"
        });
    }
});
</script>
EOM;
}
add_action( 'wp_footer', 'foot_customtags' );

〜解説〜

$('#main-image a img').attr('src', 'https://katblog.manadream.net/wp-content/uploads/2019/11/katblog-money-top-image.png');

画像を変えたい場合はこのように

$({要素}).attr({画像のURL});

といった書き方をします。

$(".main-image-text").text("KATのブログ@金融");

特定の文字を変えたい場合は

$({要素}).text({変更後の文字});

といった書き方をします。

$(".main-image-text").css({
    "color": "#331907"
});

特定の箇所の色やスタイルを変えたい場合は

$({要素}).css({
    {CSS形式のスタイル}
});

といった書き方をします。

適用前

適用後

最後に

いかがだったでしょうか?

function.phpに少し記述するだけでカテゴリーごとにスタイルを変えることができましたね。

変えたいのがどの要素かわからない場合は、F12キーを押して開発者ツールを表示させれば見ることはできますので活用して見てください。

以上、カテゴリー毎に画面のスタイルを変える方法でした〜。

ABOUT ME
kat
プログラマー歴7年、2歳の子供を持つパパです。 興味のあることはプログラミングや今後のIT技術などです。 趣味でオンラインカードゲームのサイトを運営しております。 プログラミングを通して社会に貢献していきたいです。