Настройка палитры цветов Wordpress

Есть ли способ настроить палитру цветов Wordpress 3.8 (в настраиваемых типах полей) для использования только цветов, которые я определю?

Мне нужно иметь только 6 цветов для клиента, но они не хотят иметь все эти цвета, кроме 6 цветов градиента.

Буду признателен за любую помощь... Я пытался сделать это несколько дней, но без положительного решения :(

Спасибо


person Dani    schedule 07.03.2014    source источник
comment
Отвечает ли это на ваш вопрос? Как я могу изменить значение по умолчанию цветовая палитра шрифта в редакторе TinyMce?   -  person davidcondrey    schedule 14.02.2021


Ответы (4)


Wordpress 3.5+ использует палитру цветов Iris, которая имеет несколько доступных для использования параметров.

При инициализации объекта просто назначьте опцию palettes с массивом цветов.

var colorOptions = {
    // show a group of common colors beneath the square
    // or, supply an array of colors to customize further
    palettes: ['#4444,44','#ff2255','#559999','#99CCFF','#00c1e8','#F9DE0E','#111111','#EEEEDD']
};

jQuery('.my-color-picker-class').wpColorPicker(colorOptions);
person Obmerk Kronen    schedule 08.03.2014
comment
Привет, спасибо большое. Должен ли я добавить это в мою тему/function.php правильно? Или создать новый плагин или в iis.min.js? - person Dani; 08.03.2014
comment
Нет. Это JS, а не PHP. Вы бы добавили его как внешний скрипт и поставили его в очередь. Из вашего вопроса (как настроить цветовую палитру) я предположил, что вы уже знаете, как это интегрировать. По сути, не имеет значения, ГДЕ вы поместите его, если он находится на странице, обернут jQuery( document ).ready или чем-то подобным и указывает на ВАШИ селекторы. - person Obmerk Kronen; 09.03.2014
comment
Привет, спасибо за дальнейший вклад. Ну, я не очень хорошо разбираюсь в javascripts. Но сейчас я сохранил ваш код в своей основной теме и назвал его my.new.color.js. Затем в моем function.php я попытался использовать оба приведенных ниже кода, но все равно увидел те же цвета, что и раньше, в редакторе сообщений. - person Dani; 09.03.2014
comment
function my_scripts_color() { wp_enqueue_script('custom-script', get_stylesheet_directory_uri(). '/js/my.new.color.js', array('jquery')); } add_action('wp_enqueue_scripts', 'my_scripts_color'); - person Dani; 09.03.2014
comment
Как я уже писал в своем ответе, вам нужно настроить селекторы на свое поле. Также убедитесь, что вы действительно вызываете тот же скрипт (а не другое расстояние, которое работает на вашем поле..) - person Obmerk Kronen; 09.03.2014
comment
Привет, спасибо, я думаю, вы имели в виду iris.min.js. Еще один вопрос, можно ли определить свои собственные градиенты в поле палитр? палитры: ['#444444','#ff2255','#559999','#99CCFF','#00c1e8','#F9DE0E','#111111','#EEEEDD'] - person Dani; 09.03.2014
comment
Конечно ..просто ставьте свои цвета ..и сколько хотите ( 3,4,5, сколько угодно ) - Просто примите во внимание их размер .. - person Obmerk Kronen; 09.03.2014
comment
Окей, звучит хорошо. Я дам ему попробовать. Проблема в том, что у нас есть набор фирменных цветов для градиентов, и мы хотим настроить его так, чтобы редакторы не манипулировали цветами, что может привести к несогласованности. Использует ли приведенный выше код свою функциональность из iris.mini.js, найденного в /wp-admin? Дело в том, что палитра цветов уже интегрирована в WordPress, а файл, в котором я нашел эти _palette[..], содержит больше кодов, чем то, что вы предоставили. О Боже, я знаю, что звучу глупо, но я никогда не был хорош в классах javascript. - person Dani; 09.03.2014
comment
Я уже говорил, я не знаю, как вы закодировали поле .. но этого кода должно быть достаточно. и .. НЕ РЕДАКТИРОВАТЬ ОСНОВНЫЕ ФАЙЛЫ :. - person Obmerk Kronen; 09.03.2014
comment
Хорошо, круто, кажется, я сделал это... И большое спасибо за вашу помощь. Еще один вопрос. Теперь я избавился от всех этих средств управления сборщиком. Теперь предположим, что у меня есть градиент цветов # 444 'и ' # ff0, который я хочу, чтобы # 444 плавно переходил в # ff0, чтобы люди могли просто выбрать его, как я могу закодировать это в этом поле _palette[.... ] ? - person Dani; 10.03.2014
comment
Короче - напрямую нельзя. Вам нужно сделать 2 поля. Может быть, лучше опубликовать новый вопрос для этого. (прокомментируйте здесь с новой ссылкой, и я посмотрю на это) - person Obmerk Kronen; 10.03.2014
comment
Готово :) Вот ссылка: ссылка - person Dani; 10.03.2014
comment
Я наткнулся на этот код, который кажется очень простым в реализации. Возможно ли, что те | $fields = array( 'red' =› __('Red', 'wpse'), 'green' =› __('Green', 'wpse'), 'blue' =› __('Blue', 'wpse '), 'по умолчанию' =› __('По умолчанию', 'wpse'), );| будут значения, которые я могу просто определить с помощью CSS? Ссылка: wordpress.stackexchange.com/questions/61041/ - person Dani; 12.03.2014

Если вы используете редактор TinyMCE, вы можете изменить цветовую палитру следующим образом.

function my_mce4_options( $init ) {
    $custom_colours = '
        "e14d43", "Color 1 Name",
        "d83131", "Color 2 Name",
        "ed1c24", "Color 3 Name",
        "f99b1c", "Color 4 Name",
        "50b848", "Color 5 Name",
        "00a859", "Color 6 Name"
    ';

    $init['textcolor_map'] = '['.$custom_colours.']';

    // Set number of color rows
    $init['textcolor_rows'] = 3;
    // Set number of color columns
    $init['textcolor_cols'] = 2

    return $init;
}
add_filter('tiny_mce_before_init', 'my_mce4_options');
person davidcondrey    schedule 20.08.2014
comment
Я мог бы что-то упустить, но разве палитра цветов радужной оболочки не отличается от крошечной палитры цветов mce? С каждым сборщиком, имеющим отдельный набор палитры? т.е. tiny_mce_before_init используется классическим редактором Wordpress WYSIWYG (цвета текста и т. д.), а палитра цветов Iris используется в WP Customize API и плагинах, таких как расширенные настраиваемые поля? - person dj.cowan; 14.02.2021

Нам нужно wp_enqueue_script скрипт и wp_enqueue_style стиль с add_action в файл functions.php. Просто включите файл jQuery и файл таблицы стилей в этот скрипт.

// Register Scripts & Styles in Admin panel
function custom_color_picker_scripts() {
wp_enqueue_style( 'wp-color-picker' );
wp_enqueue_script( 'iris', admin_url( 'js/iris.min.js' ), array( 'jquery-ui-draggable', 'jquery-ui-slider', 'jquery-touch-punch' ), false, 1 );
wp_enqueue_script( 'cp-active', plugins_url('/js/cp-active.js', __FILE__), array('jquery'), '', true );

}
add_action( 'admin_enqueue_scripts', custom_color_picker_scripts);

Теперь создайте новый файл javascript, например, cp-active.js, и сохраните его в пути к файлу, определенному как «/js/cp-active.js», используя код сильфона.

jQuery('.color-picker').iris({
// or in the data-default-color attribute on the input
defaultColor: true,
// a callback to fire whenever the color changes to a valid color
change: function(event, ui){},
// a callback to fire when the input is emptied or an invalid color
clear: function() {},
// hide the color picker controls on load
hide: true,
// show a group of common colors beneath the square
palettes: true
});

Добавьте текстовое поле на страницу настроек с классом CSS для палитры цветов, где вы хотите отображать вводимый текст. Я использовал «color_code» для ввода переменной $.

<input id="color_code" class="color-picker" name="color_code" type="text" value="" />

Дополнительные сведения см. в разделе Добавление темы или плагина WordPress для выбора цвета jQuery

person csehasib    schedule 25.02.2015

Вот быстрое и грязное решение:

  1. Перейдите на страницу wp-admin/js/iris.min.js.
  2. Ищите там цвета палитры (примерно 1/3 от начала файла). Я нашел это:
    _palettes:["#000","#fff","#d33","#d93","#ee2","#81d742","#1e73be","#8224e3"]
  3. Замените эти значения по умолчанию своими собственными цветами. Я оставил черный и белый, а затем добавил наши фирменные цвета вместо #d33 и остальных.
  4. Загрузить на сервер.

Работает пока. Но еще не пробовал, если это выдержит следующее обновление Wordpress.

person Outi Ugas    schedule 03.06.2015
comment
Это будет очень плохая реализация. Как вы подразумеваете, это не сработает для следующего обновления палитры цветов. - person bestprogrammerintheworld; 22.11.2015
comment
Не делай этого. Никогда не изменяйте файлы ядра. - person Laurent; 05.07.2017
comment
@Outi - Не расстраивайтесь из-за отрицательных голосов. Жизнь происходит по мере того, как мы учимся, и я уверен, что вы многому научились за то время, которое прошло с момента вашего первоначального ответа. - person dj.cowan; 14.02.2021