* 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.
*
// 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' );
// 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(
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 { }
*/
}
endif;
-/**
- * Makes some changes to the <title> tag, by filtering the output of wp_title().
- *
- * If we have a site description and we're viewing the home page or a blog posts
- * page (when using a static front page), then we will add the site description.
- *
- * If we're viewing a search result, then we're going to recreate the title entirely.
- * We're going to add page numbers to all titles as well, to the middle of a search
- * result title and the end of all other titles.
- *
- * The site title also gets added to all titles.
- *
- * @since Twenty Ten 1.0
- *
- * @param string $title Title generated by wp_title()
- * @param string $separator The separator passed to wp_title(). Twenty Ten uses a
- * vertical bar, "|", as a separator in header.php.
- * @return string The new title, ready for the <title> tag.
- */
-function twentyten_filter_wp_title( $title, $separator ) {
- // Don't affect wp_title() calls in feeds.
- if ( is_feed() )
- return $title;
-
- // The $paged global variable contains the page number of a listing of posts.
- // The $page global variable contains the page number of a single post that is paged.
- // We'll display whichever one applies, if we're not looking at the first page.
- global $paged, $page;
-
- if ( is_search() ) {
- // If we're a search, let's start over:
- $title = sprintf( __( 'Search results for %s', 'twentyten' ), '"' . get_search_query() . '"' );
- // Add a page number if we're on page 2 or more:
- if ( $paged >= 2 )
- $title .= " $separator " . sprintf( __( 'Page %s', 'twentyten' ), $paged );
- // Add the site name to the end:
- $title .= " $separator " . get_bloginfo( 'name', 'display' );
- // We're done. Let's send the new title back to wp_title():
- return $title;
- }
-
- // Otherwise, let's start by adding the site name to the end:
- $title .= get_bloginfo( 'name', 'display' );
-
- // If we have a site description and we're on the home/front page, add the description:
- $site_description = get_bloginfo( 'description', 'display' );
- if ( $site_description && ( is_home() || is_front_page() ) )
- $title .= " $separator " . $site_description;
-
- // Add a page number if necessary:
- if ( $paged >= 2 || $page >= 2 )
- $title .= " $separator " . sprintf( __( 'Page %s', 'twentyten' ), max( $paged, $page ) );
-
- // Return the new title to wp_title():
- return $title;
-}
-add_filter( 'wp_title', 'twentyten_filter_wp_title', 10, 2 );
-
/**
* Get our wp_nav_menu() fallback, wp_page_menu(), to show a home link.
*
/**
* 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' ) ) :
/**
<?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; ?>
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;
* 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 post—date/time and author.
+ * Prints HTML with meta information for the current post-date/time and author.
*
* @since Twenty Ten 1.0
*/
),
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()
)
);