【发布时间】:2014-04-11 07:56:14
【问题描述】:
有没有办法自定义 Wordpress 3.8 颜色选择器(在自定义字段类型上)以仅使用我将定义的颜色?
我只需要为客户提供 6 种颜色,但他们不想拥有所有这些颜色,除了 6 种渐变颜色。
将非常感谢任何帮助...我已经尝试了几天,但没有积极的解决方案:(
谢谢
【问题讨论】:
标签: wordpress colors color-picker picker
有没有办法自定义 Wordpress 3.8 颜色选择器(在自定义字段类型上)以仅使用我将定义的颜色?
我只需要为客户提供 6 种颜色,但他们不想拥有所有这些颜色,除了 6 种渐变颜色。
将非常感谢任何帮助...我已经尝试了几天,但没有积极的解决方案:(
谢谢
【问题讨论】:
标签: wordpress colors color-picker picker
Wordpress 3.5+ 使用 Iris 颜色选择器,其中有多个 options 可供使用。
初始化对象时,只需为 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);
【讨论】:
JS,不是 PHP。您可以将其添加为外部脚本并将其加入队列。根据您的问题(如何自定义调色板),我假设您已经知道如何整合它。基本上,只要它在页面上,用jQuery( document ).ready 或类似名称包裹并指向您的选择器,放在哪里都没有关系。
如果您使用 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');
【讨论】:
tiny_mce_before_init 由经典的 Wordpress WYSIWYG 编辑器(文本颜色等)使用,Iris 颜色选择器用于 WP Customize API 和高级自定义字段等插件?
我们需要将 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”作为输入 $variable。
<input id="color_code" class="color-picker" name="color_code" type="text" value="" />
【讨论】:
这是一个快速而肮脏的解决方案:
暂时有效。但是如果这在下一次 Wordpress 更新中仍然存在,还没有尝试过。
【讨论】: