プロフィールのSNSフォローボタンを色付きに変更する方法

Cocoonカスタマイズ集
この記事は約4分で読めます。
記事内に広告が含まれています。

はじめに

以下の質問に回答します。

CSSだけで対応する場合、ボタンごとにスタイルを個別に定義する必要があり手間がかかります。
また、「プロフィール」ウィジェットにはCocoonの設定に応じたCSSクラスが自動的に付与されています。

この仕組みを活用することで、SNSフォローボタンの設定を「ブランドカラー」にし、親テーマのCSSをそのまま流用できます。

この記事では、この方法について説明します。

完成イメージ

実装手順

以下の手順で実装します。

  • ラベル
    PHPを追加

    以下のコードをfunctions.phpに追加します。

    add_filter('cocoon_part__tmp/sns-follow-buttons', function ($content) {
      $option = get_query_var('option');
    
      if ($option === SF_PROFILE) {
        $content = str_replace(['bc-brand-color-white', 'bc-monochrome'], 'bc-brand-color', $content);
      }
    
      return $content;
    });
  • ラベル
    CSSを追加

    以下のコードをstyle.cssに追加します。

    .author-box .bc-brand-color .sns-follow-buttons {
      a {
        background: var(--cocoon-sns-color);
        border: 0;
        color: var(--cocoon-white-color);
      }
    
      /* インスタをグラデーションに変更 */
      .instagram-button {
        --cocoon-sns-color: linear-gradient(165deg, #427eff 5%, #f13f79 50%) no-repeat;
      }
    }

参考:ボタンカラーの設定に従う場合

表1の設定に応じて、プロフィール用のSNSフォローボタンを色付きに変更します。

Cocoon設定
設定大項目項目設定値
SNSフォローボタンカラー

実装手順

以下の手順で実装します。

  • ラベル
    PHPを追加

    以下のコードをfunctions.phpに追加します。

    add_filter('cocoon_part__tmp/sns-follow-buttons', function ($content) {
      $class_map = [
        'brand_color'       => 'bc-brand-color ',
        'brand_color_white' => 'bc-brand-color-white ',
        'monochrome'        => 'bc-monochrome ',
      ];
    
      $option = get_query_var('option');
    
      if ($option === SF_PROFILE) {
        $new_class = $class_map[get_sns_follow_button_color()];
        $content = str_replace(array_values($class_map), $new_class, $content);
      }
    
      return $content;
    });
  • ラベル
    CSSを追加

    以下のコードをstyle.cssに追加します。

    .author-box {
      .bc-monochrome .sns-follow-buttons a,
      .bc-brand-color .sns-follow-buttons a {
        background: var(--cocoon-sns-color);
        border: 0;
        color: var(--cocoon-white-color);
      }
    
      .bc-brand-color-white .sns-follow-buttons a {
        background: var(--cocoon-white-color);
        border: 1px solid var(--cocoon-sns-color);
        color: var(--cocoon-sns-color);
      }
    
      /* インスタをグラデーションに変更する場合 */
      .bc-brand-color .sns-follow-buttons .instagram-button {
        --cocoon-sns-color: linear-gradient(165deg, #427eff 5%, #f13f79 50%) no-repeat;
      }
    }

さいごに

今回紹介した方法を使えば、プロフィールのSNSフォローボタンをボタンカラー設定に従って自動的に色付きに変更できます。
カスタマイズ性を保ちつつ、ユーザーの視認性も向上するため、ブログのブランディングにも効果的です。

タイトルとURLをコピーしました