Похоже, вы звоните
color_option_update()
каждый раз при загрузке страницы, что означает, что при первой загрузке страницы она устанавливается равной нулю до тех пор, пока вы не обновите ее (поскольку переменная $ _POST ['color'] отсутствует, поскольку никто не отправил ее на этой странице) .
Попробуйте это:
<?php function wp_copickpage()
{
//heres the changed part
if($_POST['color'] && $_POST['color'] != null) {
color_option_update();
}
?>
<form method="POST" action="">
<?php if (get_option('custom_bg_color') != null ) {?>
<input type="text" id="color" name="color" value="<?php echo get_option('custom_bg_color'); ?>" /> <?php }
else { ?>
<input type="text" id="color" name="color" value="<?php echo get_option('custom_bg_color'); ?>" />
<?php } ?>
<p><input type="submit" name="search" value="Update Options" class="button" /></p>
</form>
<div id="colorpicker"></div>
<?php echo('Color:'); echo get_option('custom_bg_color'); ?>
<link rel="stylesheet" type="text/css" href="<?php echo get_bloginfo('template_url');?>/farbtastic.css">
<script src="<?php echo get_bloginfo('template_url');?>/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="<?php echo get_bloginfo('template_url');?>/farbtastic.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#colorpicker').farbtastic('#color');
});
</script>
<?php }//end of function wp_copickpage
//save the selected color in a wordpress option
function color_option_update()
{ update_option('custom_bg_color', $_POST['color']);}
?>
Редактировать: Обращаясь к моим прошлым ответам, для дальнейшего использования лучше написать это параметризацией функции color_option_update, а не напрямую использовать данные постов. Так
//save the selected color in a wordpress option
function color_option_update()
{ update_option('custom_bg_color', $_POST['color']);}
Становится
//save the selected color in a wordpress option
function color_option_update($color)
{ update_option('custom_bg_color', $color);}
А потом этот
//heres the changed part
if($_POST['color'] && $_POST['color'] != null) {
color_option_update();
}
становится
//heres the changed part
if($_POST['color'] && $_POST['color'] != null) {
color_option_update($_POST['color']);
}