Авторы могут настраивать свои авторские страницы?

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

Итак, просто: пользователь входит в систему, переходит на свою страницу автора и появляется ползунок, откуда он может настроить внешний вид указанной страницы автора.

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

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

Все рекомендации, предложения и все остальное приветствуются.

Вот как работает панель управления из functions.php:

add_action('header_top','control_panel');function control_panel(){ $admin_access = apply_filters( 'showcontrol_panel', current_user_can('switch_themes') ); if ( !$admin_access ) return; if ( get_option('show_control_panel') <> 'on' ) return; global $bg_texture_urls, $google_fonts; ?> <div id="et-control-panel"> <div id="control-panel-main"> <a id="et-control-close" href="#"></a> <div id="et-control-inner"> <h3 class="control_title">Example Colors</h3> <a href="#" class="et-control-colorpicker" id="et-control-background"></a> <div class="clear"></div> <?php $sample_colors = array( '6a8e94', '8da49c', 'b0b083', '859a7c', 'c6bea6', 'b08383', 'a4869d', 'f5f5f5', '4e4e4e', '556f6a', '6f5555', '6f6755' ); for ( $i=1; $i<=12; $i++ ) { ?> <a class="et-sample-setting" id="et-sample-color<?php echo $i; ?>" href="#" rel="<?php echo $sample_colors[$i-1]; ?>" title="#<?php echo $sample_colors[$i-1]; ?>"><span class="et-sample-overlay"></span></a> <?php } ?> <h3 class="control_title">Texture Overlays</h3> <div class="clear"></div> <?php $sample_textures = $bg_texture_urls; for ( $i=1; $i<=count($bg_texture_urls); $i++ ) { ?> <a title="<?php echo $sample_textures[$i-1]; ?>" class="et-sample-setting et-texture" id="et-sample-texture<?php echo $i; ?>" href="#" rel="bg<?php echo $i+1; ?>"><span class="et-sample-overlay"></span></a> <?php } ?> <?php $google_fonts = $google_fonts; $font_setting = 'Lobster'; $body_font_setting = 'Droid+Sans'; if ( isset( $_COOKIE['header_font'] ) ) $font_setting = $_COOKIE['header_font']; if ( isset( $_COOKIE['body_font'] ) ) $body_font_setting = $_COOKIE['body_font']; ?> <h3 class="control_title">Fonts</h3> <div class="clear"></div> <label for="control_header_font">Header <select name="control_header_font" id="control_header_font"> <?php foreach( $google_fonts as $google_font ) { ?> <?php $encoded_value = urlencode($google_font); ?> <option value="<?php echo $encoded_value; ?>" <?php selected( $font_setting, $encoded_value ); ?>><?php echo $google_font; ?></option> <?php } ?> </select> </label> <a href="#" class="et-control-colorpicker et-font-control" id="et-control-headerfont_bg"></a> <div class="clear"></div> <label for="control_body_font">Body <select name="control_body_font" id="control_body_font"> <?php foreach( $google_fonts as $google_font ) { ?> <?php $encoded_value = urlencode($google_font); ?> <option value="<?php echo $encoded_value; ?>" <?php selected( $body_font_setting, $encoded_value ); ?>><?php echo $google_font; ?></option> <?php } ?> </select> </label> <a href="#" class="et-control-colorpicker et-font-control" id="et-control-bodyfont_bg"></a> <div class="clear"></div> </div> <!-- end #et-control-inner --> </div> <!-- end #control-panel-main --> </div> <!-- end #et-control-panel --> <?php } add_action( 'template_redirect', 'load_scripts' ); function load_scripts(){ $slider_type = apply_filters( 'slider_type', get_option('slider_type') ); $template_dir = get_bloginfo('template_directory'); wp_enqueue_script('jquery_cycle', $template_dir . '/js/jquery.cycle.all.min.js', array('jquery'), '1.0', false); $admin_access = apply_filters( 'showcontrol_panel', current_user_can('switch_themes') ); if ( $admin_access && get_option('show_control_panel') == 'on' ) { wp_enqueue_script('colorpicker', $template_dir . '/js/colorpicker.js', array('jquery'), '1.0', true); wp_enqueue_script('eye', $template_dir . '/js/eye.js', array('jquery'), '1.0', true); wp_enqueue_script('cookie', $template_dir . '/js/jquery.cookie.js', array('jquery'), '1.0', true); wp_enqueue_script('control_panel', get_bloginfo('template_directory') . '/js/control_panel.js', array('jquery'), '1.0', true); } } add_action( 'wp_head', 'set_bg_properties' ); function et_bg_properties(){ global $bg_texture_urls; $bgcolor = ''; $bgcolor = ( isset( $_COOKIE['bgcolor'] ) && get_option('show_control_panel') == 'on' ) ? $_COOKIE['bgcolor'] : get_option('bgcolor'); $bgtexture_url = ''; $bgimage_url = ''; if ( get_option('bgimage') == '' ) { if ( isset( $_COOKIE['texture_url'] ) && get_option('show_control_panel') == 'on' ) $bgtexture_url = $_COOKIE['texture_url']; else { $bgtexture_url = get_option('bgtexture_url'); if ( $bgtexture_url == 'Default' ) $bgtexture_url = ''; else $bgtexture_url = get_bloginfo('template_directory') . '/images/body-bg' . ( array_search( $bgtexture_url, $bg_texture_urls )+2 ) . '.png'; } } else { $bgimage_url = get_option('bgimage'); } $style = ''; $style .= '<style type="text/css">';if ( $bgcolor <> '' ) $style .= 'body { background-color: #' . $bgcolor . '; }'; if ( $bgtexture_url <> '' ) $style .= 'body { background-image: url(' . $bgtexture_url . '); }'; if ( $bgimage_url <> '' ) $style .= 'body { background-image: url(' . $bgimage_url . '); background-position: top center; background-repeat: no-repeat; }'; $style .= '</style>'; if ( $bgcolor <> '' || $bgtexture_url <> '' || $bgimage_url <> '' ) echo $style; } add_action( 'wp_head', 'font_properties' ); function font_properties(){ $font_style = ''; $font_color = ''; $font_family = ''; $font_color_string = ''; if ( isset( $_COOKIE['header_font'] ) && get_option('show_control_panel') == 'on' ) $header_font = $_COOKIE['header_font']; else { $header_font = get_option('header_font'); if ( $header_font == 'Lobster' ) $header_font = ''; } if ( isset( $_COOKIE['header_font_color'] ) && get_option('show_control_panel') == 'on' ) $header_font_color = $_COOKIE['header_font_color']; else $header_font_color = get_option('header_font_color'); if ( $header_font <> '' || $header_font_color <> '' ) { $header_font_id = strtolower( str_replace( '+', '_', $header_font ) ); if ( $header_font <> '' ) { $font_style .= "<link id='" . $header_font_id . "' href='http://fonts.googleapis.com/css?family=" . $header_font . "' rel='stylesheet' type='text/css' />"; $font_family = "font-family: '" . str_replace( '+', ' ', $header_font ) . "', Arial, sans-serif !important; "; } if ( $header_font_color <> '' ) { $font_color_string = "color: #" . $header_font_color . " !important; "; } $font_style .= "<style type='text/css'>h1,h2,h3,h4,h5,h6 { ". $font_family . " }</style>"; $font_style .= "<style type='text/css'>h1,h2,h3,h4,h5,h6 { ". $font_color_string . " } #featured h2 a, #footer h4.widgettitle { color: #fff !important; } </style>"; echo $font_style; } $font_style = ''; $font_color = ''; $font_family = ''; $font_color_string = ''; if ( isset( $_COOKIE['body_font'] ) && get_option('show_control_panel') == 'on' ) $body_font = $_COOKIE['body_font']; else { $body_font = get_option('body_font'); if ( $body_font == 'Droid+Sans' ) $body_font = ''; } if ( isset( $_COOKIE['body_font_color'] ) && get_option('show_control_panel') == 'on' ) $body_font_color = $_COOKIE['body_font_color']; else $body_font_color = get_option('body_font_color'); if ( $body_font <> '' || $body_font_color <> '' ) { $body_font_id = strtolower( str_replace( '+', '_', $body_font ) ); if ( $body_font <> '' ) { $font_style .= "<link id='" . $body_font_id . "' href='http://fonts.googleapis.com/css?family=" . $body_font . "' rel='stylesheet' type='text/css' />"; $font_family = "font-family: '" . str_replace( '+', ' ', $body_font ) . "', Arial, sans-serif !important; "; } if ( $body_font_color <> '' ) { $font_color_string = "color: #" . $body_font_color . " !important; "; } $font_style .= "<style type='text/css'>body, .blurb h3.title, #footer h4.widgettitle, .widget h4.title { ". $font_family . " !important }</style>"; $font_style .= "<style type='text/css'>body { ". $font_color_string . " }</style>"; echo $font_style; }} ?> 

Solutions Collecting From Web of "Авторы могут настраивать свои авторские страницы?"

Поэтому, если я правильно понимаю, вы хотите, чтобы авторы настраивали свой профиль и сохраняли данные таким образом, чтобы каждый посетитель видел их сохраненный стиль, вроде как твиттер, позволяет вам создавать собственную страницу автора. Если это так, то использование куки-файлов не поможет вам, поскольку файлы cookie являются специфичными для пользователя и не сохраняются на вашем сервере или в базе данных, вы не сможете создать стиль, который автор выбрал в любом месте, но в этом браузере авторов.

Вы должны сохранить все данные стиля в виде массива в таблице usermeta с помощью add_user_meta() или update_user_meta() а затем на странице вашего автора вызовите этот массив данных с помощью get_user_meta и get_user_meta стиль, выбранный пользователем для его автора стр.