diff -r 2f6f6f7551ca -r 32102edaa81b web/wp-content/themes/twentyeleven/functions.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/wp-content/themes/twentyeleven/functions.php Mon Nov 19 18:26:13 2012 +0100 @@ -0,0 +1,611 @@ + + * add_action( 'after_setup_theme', 'my_child_theme_setup' ); + * function my_child_theme_setup() { + * // We are providing our own filter for excerpt_length (or using the unfiltered value) + * remove_filter( 'excerpt_length', 'twentyeleven_excerpt_length' ); + * ... + * } + * + * + * For more information on hooks, actions, and filters, see http://codex.wordpress.org/Plugin_API. + * + * @package WordPress + * @subpackage Twenty_Eleven + * @since Twenty Eleven 1.0 + */ + +/** + * Set the content width based on the theme's design and stylesheet. + */ +if ( ! isset( $content_width ) ) + $content_width = 584; + +/** + * Tell WordPress to run twentyeleven_setup() when the 'after_setup_theme' hook is run. + */ +add_action( 'after_setup_theme', 'twentyeleven_setup' ); + +if ( ! function_exists( 'twentyeleven_setup' ) ): +/** + * Sets up theme defaults and registers support for various WordPress features. + * + * Note that this function is hooked into the after_setup_theme hook, which runs + * before the init hook. The init hook is too late for some features, such as indicating + * support post thumbnails. + * + * To override twentyeleven_setup() in a child theme, add your own twentyeleven_setup to your child theme's + * functions.php file. + * + * @uses load_theme_textdomain() For translation/localization support. + * @uses add_editor_style() To style the visual editor. + * @uses add_theme_support() To add support for post thumbnails, automatic feed links, custom headers + * and backgrounds, and post formats. + * @uses register_nav_menus() To add support for navigation menus. + * @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. + * + * @since Twenty Eleven 1.0 + */ +function twentyeleven_setup() { + + /* Make Twenty Eleven available for translation. + * Translations can be added to the /languages/ directory. + * If you're building a theme based on Twenty Eleven, use a find and replace + * to change 'twentyeleven' to the name of your theme in all the template files. + */ + load_theme_textdomain( 'twentyeleven', get_template_directory() . '/languages' ); + + // This theme styles the visual editor with editor-style.css to match the theme style. + add_editor_style(); + + // Load up our theme options page and related code. + require( get_template_directory() . '/inc/theme-options.php' ); + + // Grab Twenty Eleven's Ephemera widget. + require( get_template_directory() . '/inc/widgets.php' ); + + // Add default posts and comments RSS feed links to
. + add_theme_support( 'automatic-feed-links' ); + + // This theme uses wp_nav_menu() in one location. + register_nav_menu( 'primary', __( 'Primary Menu', 'twentyeleven' ) ); + + // Add support for a variety of post formats + add_theme_support( 'post-formats', array( 'aside', 'link', 'gallery', 'status', 'quote', 'image' ) ); + + $theme_options = twentyeleven_get_theme_options(); + if ( 'dark' == $theme_options['color_scheme'] ) + $default_background_color = '1d1d1d'; + else + $default_background_color = 'f1f1f1'; + + // Add support for custom backgrounds. + add_theme_support( 'custom-background', array( + // Let WordPress know what our default background color is. + // This is dependent on our current color scheme. + 'default-color' => $default_background_color, + ) ); + + // This theme uses Featured Images (also known as post thumbnails) for per-post/per-page Custom Header images + add_theme_support( 'post-thumbnails' ); + + // Add support for custom headers. + $custom_header_support = array( + // The default header text color. + 'default-text-color' => '000', + // The height and width of our custom header. + 'width' => apply_filters( 'twentyeleven_header_image_width', 1000 ), + 'height' => apply_filters( 'twentyeleven_header_image_height', 288 ), + // Support flexible heights. + 'flex-height' => true, + // Random image rotation by default. + 'random-default' => true, + // Callback for styling the header. + 'wp-head-callback' => 'twentyeleven_header_style', + // Callback for styling the header preview in the admin. + 'admin-head-callback' => 'twentyeleven_admin_header_style', + // Callback used to display the header preview in the admin. + 'admin-preview-callback' => 'twentyeleven_admin_header_image', + ); + + 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', $custom_header_support['default-text-color'] ); + define( 'HEADER_IMAGE', '' ); + define( 'HEADER_IMAGE_WIDTH', $custom_header_support['width'] ); + define( 'HEADER_IMAGE_HEIGHT', $custom_header_support['height'] ); + add_custom_image_header( $custom_header_support['wp-head-callback'], $custom_header_support['admin-head-callback'], $custom_header_support['admin-preview-callback'] ); + add_custom_background(); + } + + // We'll be using post thumbnails for custom header images on posts and pages. + // We want them to be the size of the header image that we just defined + // Larger images will be auto-cropped to fit, smaller ones will be ignored. See header.php. + set_post_thumbnail_size( $custom_header_support['width'], $custom_header_support['height'], true ); + + // Add Twenty Eleven's custom image sizes. + // Used for large feature (header) images. + add_image_size( 'large-feature', $custom_header_support['width'], $custom_header_support['height'], true ); + // Used for featured posts if a large-feature doesn't exist. + add_image_size( 'small-feature', 500, 300 ); + + // Default custom headers packaged with the theme. %s is a placeholder for the theme template directory URI. + register_default_headers( array( + 'wheel' => array( + 'url' => '%s/images/headers/wheel.jpg', + 'thumbnail_url' => '%s/images/headers/wheel-thumbnail.jpg', + /* translators: header image description */ + 'description' => __( 'Wheel', 'twentyeleven' ) + ), + 'shore' => array( + 'url' => '%s/images/headers/shore.jpg', + 'thumbnail_url' => '%s/images/headers/shore-thumbnail.jpg', + /* translators: header image description */ + 'description' => __( 'Shore', 'twentyeleven' ) + ), + 'trolley' => array( + 'url' => '%s/images/headers/trolley.jpg', + 'thumbnail_url' => '%s/images/headers/trolley-thumbnail.jpg', + /* translators: header image description */ + 'description' => __( 'Trolley', 'twentyeleven' ) + ), + 'pine-cone' => array( + 'url' => '%s/images/headers/pine-cone.jpg', + 'thumbnail_url' => '%s/images/headers/pine-cone-thumbnail.jpg', + /* translators: header image description */ + 'description' => __( 'Pine Cone', 'twentyeleven' ) + ), + 'chessboard' => array( + 'url' => '%s/images/headers/chessboard.jpg', + 'thumbnail_url' => '%s/images/headers/chessboard-thumbnail.jpg', + /* translators: header image description */ + 'description' => __( 'Chessboard', 'twentyeleven' ) + ), + 'lanterns' => array( + 'url' => '%s/images/headers/lanterns.jpg', + 'thumbnail_url' => '%s/images/headers/lanterns-thumbnail.jpg', + /* translators: header image description */ + 'description' => __( 'Lanterns', 'twentyeleven' ) + ), + 'willow' => array( + 'url' => '%s/images/headers/willow.jpg', + 'thumbnail_url' => '%s/images/headers/willow-thumbnail.jpg', + /* translators: header image description */ + 'description' => __( 'Willow', 'twentyeleven' ) + ), + 'hanoi' => array( + 'url' => '%s/images/headers/hanoi.jpg', + 'thumbnail_url' => '%s/images/headers/hanoi-thumbnail.jpg', + /* translators: header image description */ + 'description' => __( 'Hanoi Plant', 'twentyeleven' ) + ) + ) ); +} +endif; // twentyeleven_setup + +if ( ! function_exists( 'twentyeleven_header_style' ) ) : +/** + * Styles the header image and text displayed on the blog + * + * @since Twenty Eleven 1.0 + */ +function twentyeleven_header_style() { + $text_color = get_header_textcolor(); + + // If no custom options for text are set, let's bail. + if ( $text_color == HEADER_TEXTCOLOR ) + return; + + // If we get this far, we have custom styles. Let's do this. + ?> + + Header admin panel. + * + * Referenced via add_theme_support('custom-header') in twentyeleven_setup(). + * + * @since Twenty Eleven 1.0 + */ +function twentyeleven_admin_header_style() { +?> + + Header admin panel. + * + * Referenced via add_theme_support('custom-header') in twentyeleven_setup(). + * + * @since Twenty Eleven 1.0 + */ +function twentyeleven_admin_header_image() { ?> + +' . __( 'Continue reading ', 'twentyeleven' ) . ''; +} + +/** + * Replaces "[...]" (appended to automatically generated excerpts) with an ellipsis and twentyeleven_continue_reading_link(). + * + * To override this in a child theme, remove the filter and add your own + * function tied to the excerpt_more filter hook. + */ +function twentyeleven_auto_excerpt_more( $more ) { + return ' …' . twentyeleven_continue_reading_link(); +} +add_filter( 'excerpt_more', 'twentyeleven_auto_excerpt_more' ); + +/** + * Adds a pretty "Continue Reading" link to custom post excerpts. + * + * To override this link in a child theme, remove the filter and add your own + * function tied to the get_the_excerpt filter hook. + */ +function twentyeleven_custom_excerpt_more( $output ) { + if ( has_excerpt() && ! is_attachment() ) { + $output .= twentyeleven_continue_reading_link(); + } + return $output; +} +add_filter( 'get_the_excerpt', 'twentyeleven_custom_excerpt_more' ); + +/** + * Get our wp_nav_menu() fallback, wp_page_menu(), to show a home link. + */ +function twentyeleven_page_menu_args( $args ) { + $args['show_home'] = true; + return $args; +} +add_filter( 'wp_page_menu_args', 'twentyeleven_page_menu_args' ); + +/** + * Register our sidebars and widgetized areas. Also register the default Epherma widget. + * + * @since Twenty Eleven 1.0 + */ +function twentyeleven_widgets_init() { + + register_widget( 'Twenty_Eleven_Ephemera_Widget' ); + + register_sidebar( array( + 'name' => __( 'Main Sidebar', 'twentyeleven' ), + 'id' => 'sidebar-1', + 'before_widget' => '", + 'before_title' => '', '' ); ?>
+ +