-
投稿者投稿
-
2023年8月1日 8:55 PM #129194
【お使いの Snow Monkey のバージョン】20.5.1
【お使いの Snow Monkey Blocks のバージョン】19.10.1
【お使いの Snow Monkey Editor のバージョン】9.2.5
【お使いのブラウザ】Chrome
【当該サイトのURL】local### 実現したいこと
カラーパレットに色を追加したい
### 発生している問題
カラーパレットに色が追加されない
### 試したこと
my-snow-monkeyプラグインに以下のコードを記述
add_action( 'after_setup_theme', function() { add_theme_support('editor-color-palette', array( array( 'name' => __('magenta', 'マゼンタ'), 'slug' => 'magenta', 'color' => '#a156b4', ) )); } );
追加スタイル
.has-magenta-color { color: #a156b4; }
どなたかカラーパレットに色を追加する方法をご存知無いでしょうか?
なおSnow Monkeyのフィルターフックに「snow_monkey_editor_color_palette」がありますが、使い方がわかりませんでした。
♥ 0いいねをした人: 居ません2023年8月2日 10:09 AM #129205実際にテストしたわけではありませんが、こちらの
wp_theme_json_data_theme
というフックを利用してみてはいかがでしょうか?ただ、「追加」と書かれているので、Snow Monkey が持つ既存のカラーパレットを保持したまま、ということであればこの方法では実現できないかもしれません。(確か既存を全て上書きした上で追加される仕様だったはず)
なおSnow Monkeyのフィルターフックに「snow_monkey_editor_color_palette」がありますが、使い方がわかりませんでした。
こちらは v19.0.0 で廃止になっています。
2023年8月2日 10:18 AM #129207Olein_jp様
情報提供していただきありがとうございます。
wp_theme_json_data_theme
フックを試してみます。♥ 0いいねをした人: 居ません2023年8月2日 1:15 PM #129215Olein_jp様
以下のコードでカラーパレットに色を追加することができました。
解決に至る情報を提供していただき、ありがとうございました。なお、追加部分は 株式会社ベクトル 石川栄和様の記事を参考にさせていただきました。
'wp_theme_json_data_theme', function( $theme_json ) { // theme.json の内容を格納. $get_data = $theme_json->get_data(); // 追加するカラーパレットを生成. $add_color_palette = array( array( 'slug' => 'accent-100', 'color' => 'var(--accent-color--100)', 'name' => 'Accent-100', ), array( 'slug' => 'accent-200', 'color' => 'var(--accent-color--200)', 'name' => 'Accent-200', ), array( 'slug' => 'accent-300', 'color' => 'var(--accent-color--300)', 'name' => 'Accent-300', ), ); // カラーパレットをマージして新しいカラーパレットを生成. $new_color_palette = array_merge( $get_data['settings']['color']['palette']['theme'], $add_color_palette ); // 更新データを生成. $new_data = array( 'version' => 2, 'settings' => array( 'color' => array( 'palette' => $new_color_palette, ), ), ); // ラーパレットを更新. return $theme_json->update_with( $new_data ); } );
解決しましたので、トピックを閉じさせて頂きます。
-
投稿者投稿
- トピック「カラーパレットに色を追加したい」には新しい返信をつけることはできません。