WordPress 3.4
[autoinstalls/wordpress.git] / wp-content / themes / twentyten / functions.php
index 5fd5d3ef39732b5ea258194cf6522d7b94a86935..696ff15d87901ddfe9bf16d1ed8b1902a811f6c0 100644 (file)
@@ -61,12 +61,10 @@ if ( ! function_exists( 'twentyten_setup' ) ):
  * To override twentyten_setup() in a child theme, add your own twentyten_setup to your child theme's
  * functions.php file.
  *
- * @uses add_theme_support() To add support for post thumbnails and automatic feed links.
+ * @uses add_theme_support() To add support for post thumbnails, custom headers and backgrounds, and automatic feed links.
  * @uses register_nav_menus() To add support for navigation menus.
- * @uses add_custom_background() To add support for a custom background.
  * @uses add_editor_style() To style the visual editor.
  * @uses load_theme_textdomain() For translation/localization support.
- * @uses add_custom_image_header() To add support for a custom header.
  * @uses register_default_headers() To register the default custom header images provided with the theme.
  * @uses set_post_thumbnail_size() To set a custom post thumbnail size.
  *
@@ -90,46 +88,53 @@ function twentyten_setup() {
        // Translations can be filed in the /languages/ directory
        load_theme_textdomain( 'twentyten', get_template_directory() . '/languages' );
 
-       $locale = get_locale();
-       $locale_file = get_template_directory() . "/languages/$locale.php";
-       if ( is_readable( $locale_file ) )
-               require_once( $locale_file );
-
        // This theme uses wp_nav_menu() in one location.
        register_nav_menus( array(
                'primary' => __( 'Primary Navigation', 'twentyten' ),
        ) );
 
-       // This theme allows users to set a custom background
-       add_custom_background();
+       // This theme allows users to set a custom background.
+       add_theme_support( 'custom-background', array(
+               // Let WordPress know what our default background color is.
+               'default-color' => 'f1f1f1',
+       ) );
 
-       // Your changeable header business starts here
-       if ( ! defined( 'HEADER_TEXTCOLOR' ) )
+       // The custom header business starts here.
+
+       $custom_header_support = array(
+               // The default image to use.
+               // The %s is a placeholder for the theme template directory URI.
+               'default-image' => '%s/images/headers/path.jpg',
+               // The height and width of our custom header.
+               'width' => apply_filters( 'twentyten_header_image_width', 940 ),
+               'height' => apply_filters( 'twentyten_header_image_height', 198 ),
+               // Support flexible heights.
+               'flex-height' => true,
+               // Don't support text inside the header image.
+               'header-text' => false,
+               // Callback for styling the header preview in the admin.
+               'admin-head-callback' => 'twentyten_admin_header_style',
+       );
+       
+       add_theme_support( 'custom-header', $custom_header_support );
+       
+       if ( ! function_exists( 'get_custom_header' ) ) {
+               // This is all for compatibility with versions of WordPress prior to 3.4.
                define( 'HEADER_TEXTCOLOR', '' );
-
-       // No CSS, just IMG call. The %s is a placeholder for the theme template directory URI.
-       if ( ! defined( 'HEADER_IMAGE' ) )
-               define( 'HEADER_IMAGE', '%s/images/headers/path.jpg' );
-
-       // The height and width of your custom header. You can hook into the theme's own filters to change these values.
-       // Add a filter to twentyten_header_image_width and twentyten_header_image_height to change these values.
-       define( 'HEADER_IMAGE_WIDTH', apply_filters( 'twentyten_header_image_width', 940 ) );
-       define( 'HEADER_IMAGE_HEIGHT', apply_filters( 'twentyten_header_image_height', 198 ) );
+               define( 'NO_HEADER_TEXT', true );
+               define( 'HEADER_IMAGE', $custom_header_support['default-image'] );
+               define( 'HEADER_IMAGE_WIDTH', $custom_header_support['width'] );
+               define( 'HEADER_IMAGE_HEIGHT', $custom_header_support['height'] );
+               add_custom_image_header( '', $custom_header_support['admin-head-callback'] );
+               add_custom_background();
+       }
 
        // We'll be using post thumbnails for custom header images on posts and pages.
        // We want them to be 940 pixels wide by 198 pixels tall.
        // Larger images will be auto-cropped to fit, smaller ones will be ignored. See header.php.
-       set_post_thumbnail_size( HEADER_IMAGE_WIDTH, HEADER_IMAGE_HEIGHT, true );
-
-       // Don't support text inside the header image.
-       if ( ! defined( 'NO_HEADER_TEXT' ) )
-               define( 'NO_HEADER_TEXT', true );
-
-       // Add a way for the custom header to be styled in the admin panel that controls
-       // custom headers. See twentyten_admin_header_style(), below.
-       add_custom_image_header( '', 'twentyten_admin_header_style' );
+       set_post_thumbnail_size( $custom_header_support['width'], $custom_header_support['height'], true );
 
-       // ... and thus ends the changeable header business.
+       // ... and thus ends the custom header business.
 
        // Default custom headers packaged with the theme. %s is a placeholder for the theme template directory URI.
        register_default_headers( array(
@@ -201,7 +206,7 @@ function twentyten_admin_header_style() {
        border-bottom: 1px solid #000;
        border-top: 4px solid #000;
 }
-/* If NO_HEADER_TEXT is false, you would style the text with these selectors:
+/* If header-text was supported, you would style the text with these selectors:
        #headimg #name { }
        #headimg #desc { }
 */