From 90451d90520aa70f5658239e5aa1f7e28c9fec44 Mon Sep 17 00:00:00 2001 From: iandstewart Date: Tue, 26 Apr 2011 22:52:18 +0000 Subject: [PATCH] Twenty Eleven: functions.php cleanup and introduction of theme options; see #17198 * Cleanup functions.php, adding comments and function_exists() checks following Twenty Ten's example * Theme option for choosing an alternate (dark) color scheme. It currently only loads a placeholder CSS file with dark styles to follow. * Theme option for selecting a link color that loads an internal style block for resetting link colors. An updated style.css will follow to take advantage of this. * Theme options for selecting an alternate layout. Adds a class to the body element. An updated style.css will follow to take advantage of this. git-svn-id: http://svn.automattic.com/wordpress/trunk@17721 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- .../themes/twentyeleven/colors/dark.css | 1 + wp-content/themes/twentyeleven/functions.php | 197 +++++++---- .../theme-options/images/content-sidebar.png | Bin 0 -> 273 bytes .../inc/theme-options/images/content.png | Bin 0 -> 3682 bytes .../inc/theme-options/images/dark.png | Bin 0 -> 6884 bytes .../inc/theme-options/images/light.png | Bin 0 -> 7052 bytes .../theme-options/images/sidebar-content.png | Bin 0 -> 272 bytes .../inc/theme-options/theme-options.css | 22 ++ .../inc/theme-options/theme-options.js | 39 +++ .../inc/theme-options/theme-options.php | 316 ++++++++++++++++++ 10 files changed, 510 insertions(+), 65 deletions(-) create mode 100644 wp-content/themes/twentyeleven/colors/dark.css create mode 100644 wp-content/themes/twentyeleven/inc/theme-options/images/content-sidebar.png create mode 100644 wp-content/themes/twentyeleven/inc/theme-options/images/content.png create mode 100644 wp-content/themes/twentyeleven/inc/theme-options/images/dark.png create mode 100644 wp-content/themes/twentyeleven/inc/theme-options/images/light.png create mode 100644 wp-content/themes/twentyeleven/inc/theme-options/images/sidebar-content.png create mode 100644 wp-content/themes/twentyeleven/inc/theme-options/theme-options.css create mode 100644 wp-content/themes/twentyeleven/inc/theme-options/theme-options.js create mode 100644 wp-content/themes/twentyeleven/inc/theme-options/theme-options.php diff --git a/wp-content/themes/twentyeleven/colors/dark.css b/wp-content/themes/twentyeleven/colors/dark.css new file mode 100644 index 000000000..974b25fd8 --- /dev/null +++ b/wp-content/themes/twentyeleven/colors/dark.css @@ -0,0 +1 @@ +/* Placeholder for a Twenty Eleven dark color scheme */ \ No newline at end of file diff --git a/wp-content/themes/twentyeleven/functions.php b/wp-content/themes/twentyeleven/functions.php index 5ebb362b8..2b35f0119 100644 --- a/wp-content/themes/twentyeleven/functions.php +++ b/wp-content/themes/twentyeleven/functions.php @@ -1,22 +1,43 @@ + * 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 */ -/** - * Make theme available for translation - * Translations can be filed in 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', TEMPLATEPATH . '/languages' ); - -$locale = get_locale(); -$locale_file = TEMPLATEPATH . "/languages/$locale.php"; -if ( is_readable( $locale_file ) ) - require_once( $locale_file ); - /** * Set the content width based on the theme's design and stylesheet. */ @@ -24,53 +45,110 @@ if ( ! isset( $content_width ) ) $content_width = 584; /** - * This theme uses wp_nav_menu() in one location. + * Tell WordPress to run twentyeleven_setup() when the 'after_setup_theme' hook is run. */ -register_nav_menus( array( - 'primary' => __( 'Primary Menu', 'twentyeleven' ), -) ); +add_action( 'after_setup_theme', 'twentyeleven_setup' ); +if ( ! function_exists( 'twentyeleven_setup' ) ): /** - * Add default posts and comments RSS feed links to head + * 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 add_theme_support() To add support for post thumbnails 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 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. + * + * @since Twenty Eleven 1.0 */ -add_theme_support( 'automatic-feed-links' ); +function twentyeleven_setup() { -/** - * Add support for an Aside Post Format - */ -add_theme_support( 'post-formats', array( 'aside', 'link', 'gallery', 'status', 'quote' ) ); + /** + * Make theme available for translation + * Translations can be filed in 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', TEMPLATEPATH . '/languages' ); -/** - * Add support for custom backgrounds - */ -add_custom_background(); + $locale = get_locale(); + $locale_file = TEMPLATEPATH . "/languages/$locale.php"; + if ( is_readable( $locale_file ) ) + require_once( $locale_file ); -// This theme uses Feature Images for per-post/per-page Custom Header images -add_theme_support( 'post-thumbnails' ); + /** + * Load up our theme options page + */ + require( dirname( __FILE__ ) . '/inc/theme-options/theme-options.php' ); -/** - * Add support for Custom Headers - */ -define( 'HEADER_TEXTCOLOR', '000' ); + /** + * Grab Twenty Eleven's Custom Widgets + */ + require( dirname( __FILE__ ) . '/inc/widgets.php' ); -// No CSS, just an IMG call. The %s is a placeholder for the theme template directory URI. -define( 'HEADER_IMAGE', '%s/images/headers/default.jpg' ); + /** + * Add default posts and comments RSS feed links to head + */ + add_theme_support( 'automatic-feed-links' ); -// 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 twentyeleven_header_image_width and twentyeleven_header_image_height to change these values. -define( 'HEADER_IMAGE_WIDTH', apply_filters( 'twentyeleven_header_image_width', 1000 ) ); -define( 'HEADER_IMAGE_HEIGHT', apply_filters( 'twentyeleven_header_image_height', 300 ) ); + /** + * This theme uses wp_nav_menu() in one location. + */ + register_nav_menus( array( + 'primary' => __( 'Primary Menu', 'twentyeleven' ), + ) ); -// 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 ); + /** + * Add support for an Aside Post Format + */ + add_theme_support( 'post-formats', array( 'aside', 'link', 'gallery', 'status', 'quote' ) ); -// Add a way for the custom header to be styled in the admin panel that controls -// custom headers. See twentyeleven_admin_header_style(), below. -add_custom_image_header( 'twentyeleven_header_style', 'twentyeleven_admin_header_style', 'twentyeleven_admin_header_image' ); + /** + * Add support for custom backgrounds + */ + add_custom_background(); -// ... and thus ends the changeable header business. + // This theme uses Feature Images for per-post/per-page Custom Header images + add_theme_support( 'post-thumbnails' ); + + /** + * Add support for Custom Headers + */ + define( 'HEADER_TEXTCOLOR', '000' ); + + // No CSS, just an IMG call. The %s is a placeholder for the theme template directory URI. + define( 'HEADER_IMAGE', '%s/images/headers/default.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 twentyeleven_header_image_width and twentyeleven_header_image_height to change these values. + define( 'HEADER_IMAGE_WIDTH', apply_filters( 'twentyeleven_header_image_width', 1000 ) ); + define( 'HEADER_IMAGE_HEIGHT', apply_filters( 'twentyeleven_header_image_height', 300 ) ); + + // 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 ); + + // Add Twenty Eleven's custom image sizes + add_image_size( 'large-feature', HEADER_IMAGE_WIDTH, 500, true ); // Used for large feature images + add_image_size( 'small-feature', 500, 500 ); // Used for featured posts if a large-feature doesn't exist + + // Add a way for the custom header to be styled in the admin panel that controls + // custom headers. See twentyeleven_admin_header_style(), below. + add_custom_image_header( 'twentyeleven_header_style', 'twentyeleven_admin_header_style', 'twentyeleven_admin_header_image' ); + + // ... and thus ends the changeable header business. +} +endif; // twentyeleven_setup if ( ! function_exists( 'twentyeleven_header_style' ) ) : /** @@ -79,6 +157,7 @@ if ( ! function_exists( 'twentyeleven_header_style' ) ) : * @since Twenty Eleven 1.0 */ function twentyeleven_header_style() { + // If no custom options for text are set, let's bail // get_header_textcolor() options: HEADER_TEXTCOLOR is default, hide text (returns 'blank') or any hex value if ( HEADER_TEXTCOLOR == get_header_textcolor() ) @@ -108,7 +187,7 @@ function twentyeleven_header_style() { max_num_pages > 1 ) : ?> diff --git a/wp-content/themes/twentyeleven/inc/theme-options/images/content-sidebar.png b/wp-content/themes/twentyeleven/inc/theme-options/images/content-sidebar.png new file mode 100644 index 0000000000000000000000000000000000000000..f4d4794712d0264a2e960d46b2328a2979b19181 GIT binary patch literal 273 zcmeAS@N?(olHy`uVBq!ia0vp^9Y9>g!3-pW?OqoFDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MWO*dA+FC~y!ikB|K~4X-oAVH?c2AXKYxDu^eHK5$4Q`q zNuDl_Ar-gY+&1Jopupo0xOn4t`=W)>+pRhp_tiJCUv%~9R@&+`;byzopr03A?Uy8r+H literal 0 HcmV?d00001 diff --git a/wp-content/themes/twentyeleven/inc/theme-options/images/content.png b/wp-content/themes/twentyeleven/inc/theme-options/images/content.png new file mode 100644 index 0000000000000000000000000000000000000000..6cf1da4aacaa8aad7cec2551c720ef9117456f05 GIT binary patch literal 3682 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 literal 0 HcmV?d00001 diff --git a/wp-content/themes/twentyeleven/inc/theme-options/images/dark.png b/wp-content/themes/twentyeleven/inc/theme-options/images/dark.png new file mode 100644 index 0000000000000000000000000000000000000000..55eda6679807a1657550b7f5ce03e97d47bd4edc GIT binary patch literal 6884 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 literal 0 HcmV?d00001 diff --git a/wp-content/themes/twentyeleven/inc/theme-options/images/light.png b/wp-content/themes/twentyeleven/inc/theme-options/images/light.png new file mode 100644 index 0000000000000000000000000000000000000000..51b1b7a80af9e43f33b09d45f337b985635848a2 GIT binary patch literal 7052 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 bIDkGOhnT07m&3pJ8bC%uQT&IfQQ-doKU1b` literal 0 HcmV?d00001 diff --git a/wp-content/themes/twentyeleven/inc/theme-options/images/sidebar-content.png b/wp-content/themes/twentyeleven/inc/theme-options/images/sidebar-content.png new file mode 100644 index 0000000000000000000000000000000000000000..de520237019aeb2a2756f96e3796dff0a8ec8f0f GIT binary patch literal 272 zcmeAS@N?(olHy`uVBq!ia0vp^9Y9>g!3-pW?OqoFDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MWO*dA+FC~y!ikB|K~4X-oAVH?c2AXKYxDu^eHK5$4Q`q ziJmTwAr-gY+;-$Tpuof6xOn6L`l5x~ array( + 'value' => 'light', + 'label' => __( 'Light', 'twentyeleven' ) + ), + 'dark' => array( + 'value' => 'dark', + 'label' => __( 'Dark', 'twentyeleven' ) + ), + ); + + return $color_scheme_options; +} + +/** + * Return array for our layout options + */ +function twentyeleven_layouts() { + $layout_options = array( + 'content-sidebar' => array( + 'value' => 'content-sidebar', + 'label' => __( 'Content on left', 'twentyeleven' ), + ), + 'sidebar-content' => array( + 'value' => 'sidebar-content', + 'label' => __( 'Content on right', 'twentyeleven' ) + ), + 'content' => array( + 'value' => 'content', + 'label' => __( 'One-column, no Sidebar', 'twentyeleven' ) + ), + ); + + return $layout_options; +} + +/** + * Return the current Twenty Eleven theme options, with default values as fallback + */ +function twentyeleven_get_theme_options() { + $defaults = array( + 'color_scheme' => 'light', + 'link_color' => '1b8be0', + 'theme_layout' => 'content-sidebar', + ); + $options = get_option( 'twentyeleven_theme_options', $defaults ); + + return $options; +} + +/** + * Create the options page + */ +function theme_options_do_page() { + if ( ! isset( $_REQUEST['settings-updated'] ) ) + $_REQUEST['settings-updated'] = false; + + ?> +
+ " . get_current_theme() . __( ' Theme Options', 'twentyeleven' ) . ""; ?> + + +

+ + +
+ + + + + + + + + + + + + + + + + + + +
+
+ +
+ +
+ +
+
+
+ + + +
+ +
+
+
+ +
+ +
+ +
+
+ +

+ +

+
+
+ + +