はじめに
以下の質問に回答します。
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フォローボタンを色付きに変更します。
| 設定 | 大項目 | 項目 | 設定値 |
|---|---|---|---|
| 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フォローボタンをボタンカラー設定に従って自動的に色付きに変更できます。
カスタマイズ性を保ちつつ、ユーザーの視認性も向上するため、ブログのブランディングにも効果的です。


