admin_header_callback = $admin_header_callback; $this->admin_image_div_callback = $admin_image_div_callback; } /** * Set up the hooks for the Custom Header admin page. * * @since 2.1.0 */ function init() { if ( ! current_user_can('edit_theme_options') ) return; $page = add_theme_page(__('Header'), __('Header'), 'edit_theme_options', 'custom-header', array(&$this, 'admin_page')); add_action("admin_print_scripts-$page", array(&$this, 'js_includes')); add_action("admin_print_styles-$page", array(&$this, 'css_includes')); add_action("admin_head-$page", array(&$this, 'take_action'), 50); add_action("admin_head-$page", array(&$this, 'js'), 50); add_action("admin_head-$page", $this->admin_header_callback, 51); } /** * Get the current step. * * @since 2.6.0 * * @return int Current step */ function step() { if ( ! isset( $_GET['step'] ) ) return 1; $step = (int) $_GET['step']; if ( $step < 1 || 3 < $step ) $step = 1; return $step; } /** * Set up the enqueue for the JavaScript files. * * @since 2.1.0 */ function js_includes() { $step = $this->step(); if ( ( 1 == $step || 3 == $step ) && $this->header_text() ) wp_enqueue_script('farbtastic'); elseif ( 2 == $step ) wp_enqueue_script('imgareaselect'); } /** * Set up the enqueue for the CSS files * * @since 2.7 */ function css_includes() { $step = $this->step(); if ( ( 1 == $step || 3 == $step ) && $this->header_text() ) wp_enqueue_style('farbtastic'); elseif ( 2 == $step ) wp_enqueue_style('imgareaselect'); } /** * Check if header text is allowed * * @since 3.0.0 */ function header_text() { if ( defined( 'NO_HEADER_TEXT' ) && NO_HEADER_TEXT ) return false; return true; } /** * Execute custom header modification. * * @since 2.6.0 */ function take_action() { if ( ! current_user_can('edit_theme_options') ) return; if ( empty( $_POST ) ) return; $this->updated = true; if ( isset( $_POST['resetheader'] ) ) { check_admin_referer( 'custom-header-options', '_wpnonce-custom-header-options' ); remove_theme_mod( 'header_image' ); return; } if ( isset( $_POST['resettext'] ) ) { check_admin_referer( 'custom-header-options', '_wpnonce-custom-header-options' ); remove_theme_mod('header_textcolor'); return; } if ( isset( $_POST['removeheader'] ) ) { check_admin_referer( 'custom-header-options', '_wpnonce-custom-header-options' ); set_theme_mod( 'header_image', '' ); return; } if ( isset( $_POST['text-color'] ) ) { check_admin_referer( 'custom-header-options', '_wpnonce-custom-header-options' ); $_POST['text-color'] = str_replace( '#', '', $_POST['text-color'] ); if ( 'blank' == $_POST['text-color'] ) { set_theme_mod( 'header_textcolor', 'blank' ); } else { $color = preg_replace('/[^0-9a-fA-F]/', '', $_POST['text-color']); if ( strlen($color) == 6 || strlen($color) == 3 ) set_theme_mod('header_textcolor', $color); } } if ( isset($_POST['default-header']) ) { check_admin_referer( 'custom-header-options', '_wpnonce-custom-header-options' ); $this->process_default_headers(); if ( isset($this->default_headers[$_POST['default-header']]) ) set_theme_mod('header_image', esc_url($this->default_headers[$_POST['default-header']]['url'])); } } /** * Process the default headers * * @since 3.0.0 */ function process_default_headers() { global $_wp_default_headers; if ( !empty($this->headers) ) return; if ( !isset($_wp_default_headers) ) return; $this->default_headers = $_wp_default_headers; foreach ( array_keys($this->default_headers) as $header ) { $this->default_headers[$header]['url'] = sprintf( $this->default_headers[$header]['url'], get_template_directory_uri(), get_stylesheet_directory_uri() ); $this->default_headers[$header]['thumbnail_url'] = sprintf( $this->default_headers[$header]['thumbnail_url'], get_template_directory_uri(), get_stylesheet_directory_uri() ); } } /** * Display UI for selecting one of several default headers. * * @since 3.0.0 */ function show_default_header_selector() { echo '
Visit your site to see how it looks.' ), home_url( '/' ) ); ?>
admin_image_div_callback ) {
call_user_func( $this->admin_image_div_callback );
} else {
?>
header_text() )
$style = ' style="display:none;"';
else
$style = ' style="color:#' . get_theme_mod( 'header_textcolor', HEADER_TEXTCOLOR ) . ';"';
?>
onclick="return false;" href="">>
|
|
|