]> scripts.mit.edu Git - autoinstalls/wordpress.git/blobdiff - wp-content/themes/twentyten/functions.php
WordPress 3.4
[autoinstalls/wordpress.git] / wp-content / themes / twentyten / functions.php
index d7a127a21123c98d6bdfcdb5ec18c60a6da97ff6..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.
  *
@@ -77,6 +75,9 @@ function twentyten_setup() {
        // This theme styles the visual editor with editor-style.css to match the theme style.
        add_editor_style();
 
+       // Post Format support. You can also use the legacy "gallery" or "asides" (note the plural) categories.
+       add_theme_support( 'post-formats', array( 'aside', 'gallery' ) );
+
        // This theme uses post thumbnails
        add_theme_support( 'post-thumbnails' );
 
@@ -85,44 +86,55 @@ function twentyten_setup() {
 
        // Make theme available for translation
        // Translations can be filed in the /languages/ directory
-       load_theme_textdomain( 'twentyten', TEMPLATEPATH . '/languages' );
-
-       $locale = get_locale();
-       $locale_file = TEMPLATEPATH . "/languages/$locale.php";
-       if ( is_readable( $locale_file ) )
-               require_once( $locale_file );
+       load_theme_textdomain( 'twentyten', get_template_directory() . '/languages' );
 
        // 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();
-
-       // Your changeable header business starts here
-       define( 'HEADER_TEXTCOLOR', '' );
-       // No CSS, just IMG call. The %s is a placeholder for the theme template directory URI.
-       define( 'HEADER_IMAGE', '%s/images/headers/path.jpg' );
+       // 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',
+       ) );
 
-       // 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 ) );
+       // 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', '' );
+               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.
-       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(
@@ -194,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 { }
 */
@@ -275,15 +287,30 @@ add_filter( 'get_the_excerpt', 'twentyten_custom_excerpt_more' );
 /**
  * Remove inline styles printed when the gallery shortcode is used.
  *
- * Galleries are styled by the theme in Twenty Ten's style.css.
+ * Galleries are styled by the theme in Twenty Ten's style.css. This is just
+ * a simple filter call that tells WordPress to not use the default styles.
+ *
+ * @since Twenty Ten 1.2
+ */
+add_filter( 'use_default_gallery_style', '__return_false' );
+
+/**
+ * Deprecated way to remove inline styles printed when the gallery shortcode is used.
+ *
+ * This function is no longer needed or used. Use the use_default_gallery_style
+ * filter instead, as seen above.
  *
  * @since Twenty Ten 1.0
+ * @deprecated Deprecated in Twenty Ten 1.2 for WordPress 3.1
+ *
  * @return string The gallery style filter, with the styles themselves removed.
  */
 function twentyten_remove_gallery_css( $css ) {
        return preg_replace( "#<style type='text/css'>(.*?)</style>#s", '', $css );
 }
-add_filter( 'gallery_style', 'twentyten_remove_gallery_css' );
+// Backwards compatibility with WordPress 3.0.
+if ( version_compare( $GLOBALS['wp_version'], '3.1', '<' ) )
+       add_filter( 'gallery_style', 'twentyten_remove_gallery_css' );
 
 if ( ! function_exists( 'twentyten_comment' ) ) :
 /**
@@ -308,7 +335,7 @@ function twentyten_comment( $comment, $args, $depth ) {
                        <?php printf( __( '%s <span class="says">says:</span>', 'twentyten' ), sprintf( '<cite class="fn">%s</cite>', get_comment_author_link() ) ); ?>
                </div><!-- .comment-author .vcard -->
                <?php if ( $comment->comment_approved == '0' ) : ?>
-                       <em><?php _e( 'Your comment is awaiting moderation.', 'twentyten' ); ?></em>
+                       <em class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation.', 'twentyten' ); ?></em>
                        <br />
                <?php endif; ?>
 
@@ -332,7 +359,7 @@ function twentyten_comment( $comment, $args, $depth ) {
                case 'trackback' :
        ?>
        <li class="post pingback">
-               <p><?php _e( 'Pingback:', 'twentyten' ); ?> <?php comment_author_link(); ?><?php edit_comment_link( __('(Edit)', 'twentyten'), ' ' ); ?></p>
+               <p><?php _e( 'Pingback:', 'twentyten' ); ?> <?php comment_author_link(); ?><?php edit_comment_link( __( '(Edit)', 'twentyten' ), ' ' ); ?></p>
        <?php
                        break;
        endswitch;
@@ -424,17 +451,20 @@ add_action( 'widgets_init', 'twentyten_widgets_init' );
  * To override this in a child theme, remove the filter and optionally add your own
  * function tied to the widgets_init action hook.
  *
+ * This function uses a filter (show_recent_comments_widget_style) new in WordPress 3.1
+ * to remove the default style. Using Twenty Ten 1.2 in WordPress 3.0 will show the styles,
+ * but they won't have any effect on the widget in default Twenty Ten styling.
+ *
  * @since Twenty Ten 1.0
  */
 function twentyten_remove_recent_comments_style() {
-       global $wp_widget_factory;
-       remove_action( 'wp_head', array( $wp_widget_factory->widgets['WP_Widget_Recent_Comments'], 'recent_comments_style' ) );
+       add_filter( 'show_recent_comments_widget_style', '__return_false' );
 }
 add_action( 'widgets_init', 'twentyten_remove_recent_comments_style' );
 
 if ( ! function_exists( 'twentyten_posted_on' ) ) :
 /**
- * Prints HTML with meta information for the current postdate/time and author.
+ * Prints HTML with meta information for the current post-date/time and author.
  *
  * @since Twenty Ten 1.0
  */
@@ -448,7 +478,7 @@ function twentyten_posted_on() {
                ),
                sprintf( '<span class="author vcard"><a class="url fn n" href="%1$s" title="%2$s">%3$s</a></span>',
                        get_author_posts_url( get_the_author_meta( 'ID' ) ),
-                       sprintf( esc_attr__( 'View all posts by %s', 'twentyten' ), get_the_author() ),
+                       esc_attr( sprintf( __( 'View all posts by %s', 'twentyten' ), get_the_author() ) ),
                        get_the_author()
                )
        );