Changeset 17721
- Timestamp:
- 04/26/2011 10:52:18 PM (12 years ago)
- Location:
- trunk/wp-content/themes/twentyeleven
- Files:
-
- 12 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-content/themes/twentyeleven/functions.php
r17720 r17721 1 1 <?php 2 2 /** 3 * Twenty Eleven functions and definitions 4 * 5 * Sets up the theme and provides some helper functions. Some helper functions 6 * are used in the theme as custom template tags. Others are attached to action and 7 * filter hooks in WordPress to change core functionality. 8 * 9 * The first function, twentyeleven_setup(), sets up the theme by registering support 10 * for various features in WordPress, such as post thumbnails, navigation menus, and the like. 11 * 12 * When using a child theme (see http://codex.wordpress.org/Theme_Development and 13 * http://codex.wordpress.org/Child_Themes), you can override certain functions 14 * (those wrapped in a function_exists() call) by defining them first in your child theme's 15 * functions.php file. The child theme's functions.php file is included before the parent 16 * theme's file, so the child theme functions would be used. 17 * 18 * Functions that are not pluggable (not wrapped in function_exists()) are instead attached 19 * to a filter or action hook. The hook can be removed by using remove_action() or 20 * remove_filter() and you can attach your own function to the hook. 21 * 22 * We can remove the parent theme's hook only after it is attached, which means we need to 23 * wait until setting up the child theme: 24 * 25 * <code> 26 * add_action( 'after_setup_theme', 'my_child_theme_setup' ); 27 * function my_child_theme_setup() { 28 * // We are providing our own filter for excerpt_length (or using the unfiltered value) 29 * remove_filter( 'excerpt_length', 'twentyeleven_excerpt_length' ); 30 * ... 31 * } 32 * </code> 33 * 34 * For more information on hooks, actions, and filters, see http://codex.wordpress.org/Plugin_API. 35 * 3 36 * @package WordPress 4 37 * @subpackage Twenty Eleven 5 */ 6 7 /** 8 * Make theme available for translation 9 * Translations can be filed in the /languages/ directory 10 * If you're building a theme based on Twenty Eleven, use a find and replace 11 * to change 'twentyeleven' to the name of your theme in all the template files 12 */ 13 load_theme_textdomain( 'twentyeleven', TEMPLATEPATH . '/languages' ); 14 15 $locale = get_locale(); 16 $locale_file = TEMPLATEPATH . "/languages/$locale.php"; 17 if ( is_readable( $locale_file ) ) 18 require_once( $locale_file ); 38 * @since Twenty Eleven 1.0 39 */ 19 40 20 41 /** … … 25 46 26 47 /** 27 * This theme uses wp_nav_menu() in one location. 28 */ 29 register_nav_menus( array( 30 'primary' => __( 'Primary Menu', 'twentyeleven' ), 31 ) ); 32 33 /** 34 * Add default posts and comments RSS feed links to head 35 */ 36 add_theme_support( 'automatic-feed-links' ); 37 38 /** 39 * Add support for an Aside Post Format 40 */ 41 add_theme_support( 'post-formats', array( 'aside', 'link', 'gallery', 'status', 'quote' ) ); 42 43 /** 44 * Add support for custom backgrounds 45 */ 46 add_custom_background(); 47 48 // This theme uses Feature Images for per-post/per-page Custom Header images 49 add_theme_support( 'post-thumbnails' ); 50 51 /** 52 * Add support for Custom Headers 53 */ 54 define( 'HEADER_TEXTCOLOR', '000' ); 55 56 // No CSS, just an IMG call. The %s is a placeholder for the theme template directory URI. 57 define( 'HEADER_IMAGE', '%s/images/headers/default.jpg' ); 58 59 // The height and width of your custom header. You can hook into the theme's own filters to change these values. 60 // Add a filter to twentyeleven_header_image_width and twentyeleven_header_image_height to change these values. 61 define( 'HEADER_IMAGE_WIDTH', apply_filters( 'twentyeleven_header_image_width', 1000 ) ); 62 define( 'HEADER_IMAGE_HEIGHT', apply_filters( 'twentyeleven_header_image_height', 300 ) ); 63 64 // We'll be using post thumbnails for custom header images on posts and pages. 65 // We want them to be 940 pixels wide by 198 pixels tall. 66 // Larger images will be auto-cropped to fit, smaller ones will be ignored. See header.php. 67 set_post_thumbnail_size( HEADER_IMAGE_WIDTH, HEADER_IMAGE_HEIGHT, true ); 68 69 // Add a way for the custom header to be styled in the admin panel that controls 70 // custom headers. See twentyeleven_admin_header_style(), below. 71 add_custom_image_header( 'twentyeleven_header_style', 'twentyeleven_admin_header_style', 'twentyeleven_admin_header_image' ); 72 73 // ... and thus ends the changeable header business. 48 * Tell WordPress to run twentyeleven_setup() when the 'after_setup_theme' hook is run. 49 */ 50 add_action( 'after_setup_theme', 'twentyeleven_setup' ); 51 52 if ( ! function_exists( 'twentyeleven_setup' ) ): 53 /** 54 * Sets up theme defaults and registers support for various WordPress features. 55 * 56 * Note that this function is hooked into the after_setup_theme hook, which runs 57 * before the init hook. The init hook is too late for some features, such as indicating 58 * support post thumbnails. 59 * 60 * To override twentyeleven_setup() in a child theme, add your own twentyeleven_setup to your child theme's 61 * functions.php file. 62 * 63 * @uses add_theme_support() To add support for post thumbnails and automatic feed links. 64 * @uses register_nav_menus() To add support for navigation menus. 65 * @uses add_custom_background() To add support for a custom background. 66 * @uses load_theme_textdomain() For translation/localization support. 67 * @uses add_custom_image_header() To add support for a custom header. 68 * @uses register_default_headers() To register the default custom header images provided with the theme. 69 * @uses set_post_thumbnail_size() To set a custom post thumbnail size. 70 * 71 * @since Twenty Eleven 1.0 72 */ 73 function twentyeleven_setup() { 74 75 /** 76 * Make theme available for translation 77 * Translations can be filed in the /languages/ directory 78 * If you're building a theme based on Twenty Eleven, use a find and replace 79 * to change 'twentyeleven' to the name of your theme in all the template files 80 */ 81 load_theme_textdomain( 'twentyeleven', TEMPLATEPATH . '/languages' ); 82 83 $locale = get_locale(); 84 $locale_file = TEMPLATEPATH . "/languages/$locale.php"; 85 if ( is_readable( $locale_file ) ) 86 require_once( $locale_file ); 87 88 /** 89 * Load up our theme options page 90 */ 91 require( dirname( __FILE__ ) . '/inc/theme-options/theme-options.php' ); 92 93 /** 94 * Grab Twenty Eleven's Custom Widgets 95 */ 96 require( dirname( __FILE__ ) . '/inc/widgets.php' ); 97 98 /** 99 * Add default posts and comments RSS feed links to head 100 */ 101 add_theme_support( 'automatic-feed-links' ); 102 103 /** 104 * This theme uses wp_nav_menu() in one location. 105 */ 106 register_nav_menus( array( 107 'primary' => __( 'Primary Menu', 'twentyeleven' ), 108 ) ); 109 110 /** 111 * Add support for an Aside Post Format 112 */ 113 add_theme_support( 'post-formats', array( 'aside', 'link', 'gallery', 'status', 'quote' ) ); 114 115 /** 116 * Add support for custom backgrounds 117 */ 118 add_custom_background(); 119 120 // This theme uses Feature Images for per-post/per-page Custom Header images 121 add_theme_support( 'post-thumbnails' ); 122 123 /** 124 * Add support for Custom Headers 125 */ 126 define( 'HEADER_TEXTCOLOR', '000' ); 127 128 // No CSS, just an IMG call. The %s is a placeholder for the theme template directory URI. 129 define( 'HEADER_IMAGE', '%s/images/headers/default.jpg' ); 130 131 // The height and width of your custom header. You can hook into the theme's own filters to change these values. 132 // Add a filter to twentyeleven_header_image_width and twentyeleven_header_image_height to change these values. 133 define( 'HEADER_IMAGE_WIDTH', apply_filters( 'twentyeleven_header_image_width', 1000 ) ); 134 define( 'HEADER_IMAGE_HEIGHT', apply_filters( 'twentyeleven_header_image_height', 300 ) ); 135 136 // We'll be using post thumbnails for custom header images on posts and pages. 137 // We want them to be 940 pixels wide by 198 pixels tall. 138 // Larger images will be auto-cropped to fit, smaller ones will be ignored. See header.php. 139 set_post_thumbnail_size( HEADER_IMAGE_WIDTH, HEADER_IMAGE_HEIGHT, true ); 140 141 // Add Twenty Eleven's custom image sizes 142 add_image_size( 'large-feature', HEADER_IMAGE_WIDTH, 500, true ); // Used for large feature images 143 add_image_size( 'small-feature', 500, 500 ); // Used for featured posts if a large-feature doesn't exist 144 145 // Add a way for the custom header to be styled in the admin panel that controls 146 // custom headers. See twentyeleven_admin_header_style(), below. 147 add_custom_image_header( 'twentyeleven_header_style', 'twentyeleven_admin_header_style', 'twentyeleven_admin_header_image' ); 148 149 // ... and thus ends the changeable header business. 150 } 151 endif; // twentyeleven_setup 74 152 75 153 if ( ! function_exists( 'twentyeleven_header_style' ) ) : … … 80 158 */ 81 159 function twentyeleven_header_style() { 160 82 161 // If no custom options for text are set, let's bail 83 162 // get_header_textcolor() options: HEADER_TEXTCOLOR is default, hide text (returns 'blank') or any hex value … … 109 188 <?php 110 189 } 111 endif; 190 endif; // twentyeleven_header_style 112 191 113 192 if ( ! function_exists( 'twentyeleven_admin_header_style' ) ) : … … 159 238 <?php 160 239 } 161 endif; 240 endif; // twentyeleven_admin_header_style 162 241 163 242 if ( ! function_exists( 'twentyeleven_admin_header_image' ) ) : … … 182 261 </div> 183 262 <?php } 184 endif; 263 endif; // twentyeleven_admin_header_image 185 264 186 265 /** … … 227 306 add_filter( 'get_the_excerpt', 'twentyeleven_custom_excerpt_more' ); 228 307 229 230 /**231 * Add Twenty Eleven's custom image sizes232 */233 add_image_size( 'large-feature', HEADER_IMAGE_WIDTH, 500, true ); // Used for large feature images234 add_image_size( 'small-feature', 500, 500 ); // Used for featured posts if a large-feature doesn't exist235 236 308 /** 237 309 * Add custom body classes 238 310 */ 239 function twentyeleven_ body_class($classes) {311 function twentyeleven_singular_class( $classes ) { 240 312 if ( is_singular() && ! is_home() && ! is_page_template( 'showcase.php' ) ) 241 313 $classes[] = 'singular'; … … 243 315 return $classes; 244 316 } 245 add_filter( 'body_class', 'twentyeleven_ body_class' );317 add_filter( 'body_class', 'twentyeleven_singular_class' ); 246 318 247 319 /** … … 310 382 311 383 /** 312 * Grab Twenty Eleven's Custom Widgets313 */314 require( dirname( __FILE__ ) . '/inc/widgets.php' );315 316 /**317 384 * Display navigation to next/previous pages when applicable 318 385 */ 319 function twentyeleven_content_nav( $nav_id) {386 function twentyeleven_content_nav( $nav_id ) { 320 387 global $wp_query; 321 388
Note: See TracChangeset
for help on using the changeset viewer.