Intereting Posts
Страница по-прежнему кэшируется даже после удаления плагина кэша Отображение моих пользовательских таксономий в <ul> с помощью the_term_list () Сортировка элементов экрана редактора Попытка получить пользовательские js-файлы в заголовке admin Есть ли какое-то преимущество для опорожнения спама комментариев? 2 цикла wordpress, показывающие 1 сообщение из того же типа сообщений – как избежать отображения одного и того же сообщения? Я использую get_posts неправильно? Как показать только название одной категории над каждым сообщением на главной странице? Загрузите еще AJAX в WP Query WordPress перезаписывает UNC Однострочное создание WP сайта с wp-cli в Windows письмо с подтверждением отправляется с моей локальной регистрации пользователя, но почта не будет отображаться на электронной почте? Как добавить «Настройки отображения вложений» в пользовательскую библиотеку мультимедиа? Ограничить CPT, чтобы иметь только одну страницу просмотра Форматы сообщений в стиле по-разному на главной странице

Утилита Cutomize Colors: как добавить больше настраиваемых цветов в тему

Недавняя установка WordPress, тема по умолчанию. Есть три цвета, которые можно настроить из admin gui, но на веб-сайте есть по крайней мере три других цвета, которые нельзя настроить оттуда:

  • Посты / страницы
  • текстовые цвета в сообщениях / страницах
  • текст и цвет фона в поле поиска

Я предполагаю, что можно изменить тему, чтобы эти вещи могли быть настроены из интерфейса администрирования цветов cutomize. Как мне это сделать? Если вы знаете, где я найду документы об этом или могу указать мне на файлы / функции, где это реализовано для трех уже доступных цветов, это, вероятно, также будет хорошим ответом.

Поэтому я записал весь процесс, как сам нашел ответ, надеюсь, что он кому-то полезен (предполагает базовые навыки Unix и программирования).

Поиск, где определены текущие параметры цвета:

grep -ir 'Header and Sidebar Text Color' . ./wp-content/themes/twentyfifteen/inc/customizer.php: // Add custom header and sidebar text color setting and control. ./wp-content/themes/twentyfifteen/inc/customizer.php: 'label' => __( 'Header and Sidebar Text Color', 'twentyfifteen' ), ./wp-content/themes/twentyfifteen/languages/twentyfifteen.pot:msgid "Header and Sidebar Text Color" 

Так что это должно быть в wp-content / themes / twentyfifteen / inc / customizer.php, файл .pot предназначен для переводов, который хорошо иметь, но не важно прямо сейчас.

В wp-content / themes / twentyfifteen / inc / customizer.php есть комментарий, который объясняет, что в цветовых схемах есть 6 цветов:

Порядок цветов в массиве цветов:

  1. Основной цвет фона.
  2. Цвет фона боковой панели.
  3. Цвет фона коробки.
  4. Основной текст и цвет ссылок.
  5. Текст боковой панели и цвет ссылки.
  6. Цвет фона метабокса.

Ниже этого комментария есть код, который, вероятно, можно отредактировать, чтобы добавить дополнительные цветовые схемы или изменить стандартные.

Далее в файле есть следующее:

 'background_color' => $color_scheme[0], 'header_background_color' => $color_scheme[1], 'box_background_color' => $color_scheme[2], 'textcolor' => $color_scheme[3], 'secondary_textcolor' => vsprintf( 'rgba( %1$s, %2$s, %3$s, 0.7)', $color_textcolor_rgb ), 'border_color' => vsprintf( 'rgba( %1$s, %2$s, %3$s, 0.1)', $color_textcolor_rgb ), 'border_focus_color' => vsprintf( 'rgba( %1$s, %2$s, %3$s, 0.3)', $color_textcolor_rgb ), 'sidebar_textcolor' => $color_scheme[4], 'sidebar_border_color' => vsprintf( 'rgba( %1$s, %2$s, %3$s, 0.1)', $color_sidebar_textcolor_rgb ), 'sidebar_border_focus_color' => vsprintf( 'rgba( %1$s, %2$s, %3$s, 0.3)', $color_sidebar_textcolor_rgb ), 'secondary_sidebar_textcolor' => vsprintf( 'rgba( %1$s, %2$s, %3$s, 0.7)', $color_sidebar_textcolor_rgb ), 'meta_box_background_color' => $color_scheme[5], 

Это показывает, что из этих 6 переменных цветов добавляются дополнительные цвета. Это может быть изменено, чтобы настроить его непосредственно.

Теперь мне нужно выяснить, как зарегистрировать эти первые 6 цветов в системе, чтобы я мог их настроить.

Для двух из предоставленных систем код выглядит следующим образом:

 // Add custom header and sidebar text color setting and control. $wp_customize->add_setting( 'sidebar_textcolor', array( 'default' => $color_scheme[4], 'sanitize_callback' => 'sanitize_hex_color', 'transport' => 'postMessage', ) ); $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'sidebar_textcolor', array( 'label' => __( 'Header and Sidebar Text Color', 'twentyfifteen' ), 'description' => __( 'Applied to the header on small screens and the sidebar on wide screens.', 'twentyfifteen' ), 'section' => 'colors', ) ) ); 

Из этого я собираюсь:

 "$color_scheme[1]" is "Header and Sidebar Background Color" "$color_scheme[4]" is "Header and Sidebar Text Color" 

и я не нашел код, но, вероятно,

 "$color_scheme[0]" is "Background Color" 

потому что в предыдущем комментарии этот символ помечен как «Основной цвет фона».

Поэтому я попробую добавить подобную строфу для одной из других записей. Я добавил:

 // Add "Box Background Color" color setting and control. $wp_customize->add_setting( 'box_background_color', array( 'default' => $color_scheme[2], 'sanitize_callback' => 'sanitize_hex_color', 'transport' => 'postMessage', ) ); $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'box_background_color', array( 'label' => __( 'Box Background Color', 'twentyfifteen' ), 'description' => __( 'I don\'t know, maybe the background color of posts/pages?.', 'twentyfifteen' ), 'section' => 'colors', ) ) ); 

«box_background_color» и индекс $ color_scheme [] относятся к приведенному выше массиву, эта строка:

 'box_background_color' => $color_scheme[2] 

Метка, которую я взял из комментария, описывающего $ color_scheme [], и описание, которое я составил. Это добавляет элементы управления, но использование элементов управления не влияет. Поэтому должно быть больше кода. В wp-content / themes / twentyfifteen / inc / customizer.php я больше ничего не могу найти, поэтому я сравнил результаты

 grep -ir 'box_background_color' . 

для нескольких из этих цветовых переменных. Те, которые настраиваются, похоже, имеют больше обращений в wp-content / themes / twentyfifteen / js / color-scheme-control.js, чем другие, поэтому я посмотрю на этот файл:

 /** * Add a listener to the Color Scheme control to update other color controls to new values/defaults. * Also trigger an update of the Color Scheme CSS when a color is changed. */ 

Это кажется правильным, это то, чего до сих пор не хватает. Этот файл имел записи для трех уже работающих сборщиков цветов в двух местах:

  colorSettings = [ 'background_color', 'header_background_color', 'sidebar_textcolor' ]; 

и здесь:

  // Update Background Color. api( 'background_color' ).set( colorScheme[value].colors[0] ); api.control( 'background_color' ).container.find( '.color-picker-hex' ) .data( 'data-default-color', colorScheme[value].colors[0] ) .wpColorPicker( 'defaultColor', colorScheme[value].colors[0] ); 

(другие два опущены)

Поэтому я добавил в массив 'box_background_color':

  colorSettings = [ 'background_color', 'header_background_color', 'box_background_color', 'sidebar_textcolor' ]; 

и дублирует другой раздел, просто изменяя имя переменной цвета и индекс массива цветовой схемы:

  // Update Box Background Color Color. api( 'box_background_color' ).set( colorScheme[value].colors[2] ); api.control( 'box_background_color' ).container.find( '.color-picker-hex' ) .data( 'data-default-color', colorScheme[value].colors[2] ) .wpColorPicker( 'defaultColor', colorScheme[value].colors[2] ); 

Вот и все. Работает. 🙂