Twenty Twelve: load our special Google Font in the visual editor to improve user experience. Props to the Konstanthemes: kovshenin and obenland.

Closes #22499. See also r23672.

git-svn-id: http://core.svn.wordpress.org/trunk@23713 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Lance Willett 2013-03-15 17:09:12 +00:00
parent 63dfa74c9f
commit 8415217e90
1 changed files with 68 additions and 36 deletions

View File

@ -83,37 +83,17 @@ add_action( 'after_setup_theme', 'twentytwelve_setup' );
require( get_template_directory() . '/inc/custom-header.php' ); require( get_template_directory() . '/inc/custom-header.php' );
/** /**
* Enqueues scripts and styles for front-end. * Returns the Google font stylesheet URL if available.
*
* @since Twenty Twelve 1.0
*/
function twentytwelve_scripts_styles() {
global $wp_styles;
/*
* Adds JavaScript to pages with the comment form to support
* sites with threaded comments (when in use).
*/
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) )
wp_enqueue_script( 'comment-reply' );
/*
* Adds JavaScript for handling the navigation menu hide-and-show behavior.
*/
wp_enqueue_script( 'twentytwelve-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '1.0', true );
/*
* Loads our special font CSS file.
* *
* The use of Open Sans by default is localized. For languages that use * The use of Open Sans by default is localized. For languages that use
* characters not supported by the font, the font can be disabled. * characters not supported by the font, the font can be disabled.
* *
* To disable in a child theme, use wp_dequeue_style() * @since Twenty Twelve 1.2
* function mytheme_dequeue_fonts() { *
* wp_dequeue_style( 'twentytwelve-fonts' ); * @return string Font stylesheet or empty string if disabled.
* }
* add_action( 'wp_enqueue_scripts', 'mytheme_dequeue_fonts', 11 );
*/ */
function twentytwelve_get_font_url() {
$font_url = '';
/* translators: If there are characters in your language that are not supported /* translators: If there are characters in your language that are not supported
by Open Sans, translate this to 'off'. Do not translate into your own language. */ by Open Sans, translate this to 'off'. Do not translate into your own language. */
@ -136,9 +116,36 @@ function twentytwelve_scripts_styles() {
'family' => 'Open+Sans:400italic,700italic,400,700', 'family' => 'Open+Sans:400italic,700italic,400,700',
'subset' => $subsets, 'subset' => $subsets,
); );
wp_enqueue_style( 'twentytwelve-fonts', add_query_arg( $query_args, "$protocol://fonts.googleapis.com/css" ), array(), null ); $font_url = add_query_arg( $query_args, "$protocol://fonts.googleapis.com/css" );
} }
return $font_url;
}
/**
* Enqueues scripts and styles for front-end.
*
* @since Twenty Twelve 1.0
*/
function twentytwelve_scripts_styles() {
global $wp_styles;
/*
* Adds JavaScript to pages with the comment form to support
* sites with threaded comments (when in use).
*/
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) )
wp_enqueue_script( 'comment-reply' );
/*
* Adds JavaScript for handling the navigation menu hide-and-show behavior.
*/
wp_enqueue_script( 'twentytwelve-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '1.0', true );
$font_url = twentytwelve_get_font_url();
if ( ! empty( $font_url ) )
wp_enqueue_style( 'twentytwelve-fonts', esc_url_raw( $font_url ), array(), null );
/* /*
* Loads our main stylesheet. * Loads our main stylesheet.
*/ */
@ -152,6 +159,31 @@ function twentytwelve_scripts_styles() {
} }
add_action( 'wp_enqueue_scripts', 'twentytwelve_scripts_styles' ); add_action( 'wp_enqueue_scripts', 'twentytwelve_scripts_styles' );
/**
* Adds additional stylesheets to the TinyMCE editor if needed.
*
* @uses twentytwelve_get_font_url() To get the Google Font stylesheet URL.
*
* @since Twenty Twelve 1.2
*
* @param string $mce_css CSS path to load in TinyMCE.
* @return string
*/
function twentytwelve_mce_css( $mce_css ) {
$font_url = twentytwelve_get_font_url();
if ( empty( $font_url ) )
return $mce_css;
if ( ! empty( $mce_css ) )
$mce_css .= ',';
$mce_css .= esc_url_raw( str_replace( ',', '%2C', $font_url ) );
return $mce_css;
}
add_filter( 'mce_css', 'twentytwelve_mce_css' );
/** /**
* Creates a nicely formatted and more specific title element text * Creates a nicely formatted and more specific title element text
* for output in head of document, based on current view. * for output in head of document, based on current view.