functions.php 21 KB
Newer Older
lechuck's avatar
lechuck committed
1 2
<?php
/**
lucha's avatar
lucha committed
3
 * Twenty Twelve functions and definitions
lechuck's avatar
lechuck committed
4 5 6 7 8
 *
 * Sets up the theme and provides some helper functions, which are used
 * in the theme as custom template tags. Others are attached to action and
 * filter hooks in WordPress to change core functionality.
 *
samba's avatar
samba committed
9 10 11 12 13 14 15
 * When using a child theme you can override certain functions (those wrapped
 * in a function_exists() call) by defining them first in your child theme's
 * functions.php file. The child theme's functions.php file is included before
 * the parent theme's file, so the child theme functions would be used.
 *
 * @link https://codex.wordpress.org/Theme_Development
 * @link https://developer.wordpress.org/themes/advanced-topics/child-themes/
lechuck's avatar
lechuck committed
16 17 18 19
 *
 * Functions that are not pluggable (not wrapped in function_exists()) are instead attached
 * to a filter or action hook.
 *
ale's avatar
ale committed
20
 * For more information on hooks, actions, and filters, @link https://codex.wordpress.org/Plugin_API
lechuck's avatar
lechuck committed
21 22 23 24 25 26
 *
 * @package WordPress
 * @subpackage Twenty_Twelve
 * @since Twenty Twelve 1.0
 */

lucha's avatar
lucha committed
27
// Set up the content width value based on the theme's design and stylesheet.
lucha's avatar
lucha committed
28
if ( ! isset( $content_width ) ) {
lechuck's avatar
lechuck committed
29
	$content_width = 625;
lucha's avatar
lucha committed
30
}
lechuck's avatar
lechuck committed
31 32

/**
lucha's avatar
lucha committed
33 34
 * Twenty Twelve setup.
 *
lechuck's avatar
lechuck committed
35 36 37 38 39 40
 * Sets up theme defaults and registers the various WordPress features that
 * Twenty Twelve supports.
 *
 * @uses load_theme_textdomain() For translation/localization support.
 * @uses add_editor_style() To add a Visual Editor stylesheet.
 * @uses add_theme_support() To add support for post thumbnails, automatic feed links,
lucha's avatar
lucha committed
41
 *  custom background, and post formats.
lechuck's avatar
lechuck committed
42 43 44 45 46 47 48 49 50
 * @uses register_nav_menu() To add support for navigation menus.
 * @uses set_post_thumbnail_size() To set a custom post thumbnail size.
 *
 * @since Twenty Twelve 1.0
 */
function twentytwelve_setup() {
	/*
	 * Makes Twenty Twelve available for translation.
	 *
lucha's avatar
lucha committed
51
	 * Translations can be filed at WordPress.org. See: https://translate.wordpress.org/projects/wp-themes/twentytwelve
lechuck's avatar
lechuck committed
52 53 54
	 * If you're building a theme based on Twenty Twelve, use a find and replace
	 * to change 'twentytwelve' to the name of your theme in all the template files.
	 */
lucha's avatar
lucha committed
55
	load_theme_textdomain( 'twentytwelve' );
lechuck's avatar
lechuck committed
56 57 58 59

	// This theme styles the visual editor with editor-style.css to match the theme style.
	add_editor_style();

lucha's avatar
lucha committed
60 61 62 63 64 65 66 67 68 69
	// Load regular editor styles into the new block-based editor.
	add_theme_support( 'editor-styles' );

	// Load default block styles.
	add_theme_support( 'wp-block-styles' );

	// Add support for responsive embeds.
	add_theme_support( 'responsive-embeds' );

	// Add support for custom color scheme.
lucha's avatar
lucha committed
70 71
	add_theme_support(
		'editor-color-palette',
lucha's avatar
lucha committed
72
		array(
lucha's avatar
lucha committed
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
			array(
				'name'  => __( 'Blue', 'twentytwelve' ),
				'slug'  => 'blue',
				'color' => '#21759b',
			),
			array(
				'name'  => __( 'Dark Gray', 'twentytwelve' ),
				'slug'  => 'dark-gray',
				'color' => '#444',
			),
			array(
				'name'  => __( 'Medium Gray', 'twentytwelve' ),
				'slug'  => 'medium-gray',
				'color' => '#9f9f9f',
			),
			array(
				'name'  => __( 'Light Gray', 'twentytwelve' ),
				'slug'  => 'light-gray',
				'color' => '#e6e6e6',
			),
			array(
				'name'  => __( 'White', 'twentytwelve' ),
				'slug'  => 'white',
				'color' => '#fff',
			),
		)
	);
lucha's avatar
lucha committed
100

lechuck's avatar
lechuck committed
101 102 103 104 105 106 107 108 109 110
	// Adds RSS feed links to <head> for posts and comments.
	add_theme_support( 'automatic-feed-links' );

	// This theme supports a variety of post formats.
	add_theme_support( 'post-formats', array( 'aside', 'image', 'link', 'quote', 'status' ) );

	// This theme uses wp_nav_menu() in one location.
	register_nav_menu( 'primary', __( 'Primary Menu', 'twentytwelve' ) );

	/*
lucha's avatar
lucha committed
111 112
	 * This theme supports custom background color and image,
	 * and here we also set up the default background color.
lechuck's avatar
lechuck committed
113
	 */
lucha's avatar
lucha committed
114 115 116 117 118 119
	add_theme_support(
		'custom-background',
		array(
			'default-color' => 'e6e6e6',
		)
	);
lechuck's avatar
lechuck committed
120 121 122 123

	// This theme uses a custom image size for featured images, displayed on "standard" posts.
	add_theme_support( 'post-thumbnails' );
	set_post_thumbnail_size( 624, 9999 ); // Unlimited height, soft crop
lechuck's avatar
lechuck committed
124 125 126

	// Indicate widget sidebars can use selective refresh in the Customizer.
	add_theme_support( 'customize-selective-refresh-widgets' );
lechuck's avatar
lechuck committed
127 128 129 130
}
add_action( 'after_setup_theme', 'twentytwelve_setup' );

/**
lucha's avatar
lucha committed
131
 * Add support for a custom header image.
lechuck's avatar
lechuck committed
132 133 134 135
 */
require( get_template_directory() . '/inc/custom-header.php' );

/**
lucha's avatar
lucha committed
136
 * Return the Google font stylesheet URL if available.
lechuck's avatar
lechuck committed
137
 *
lechuck's avatar
lechuck committed
138 139 140 141 142 143
 * The use of Open Sans by default is localized. For languages that use
 * characters not supported by the font, the font can be disabled.
 *
 * @since Twenty Twelve 1.2
 *
 * @return string Font stylesheet or empty string if disabled.
lechuck's avatar
lechuck committed
144
 */
lechuck's avatar
lechuck committed
145 146
function twentytwelve_get_font_url() {
	$font_url = '';
lechuck's avatar
lechuck committed
147

148
    /* REMOVED GoogleApis*/
lechuck's avatar
lechuck committed
149

lechuck's avatar
lechuck committed
150 151 152 153
	return $font_url;
}

/**
lechuck's avatar
lechuck committed
154
 * Enqueue scripts and styles for front end.
lechuck's avatar
lechuck committed
155 156 157 158 159 160 161 162 163 164
 *
 * @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).
	 */
lucha's avatar
lucha committed
165
	if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
lechuck's avatar
lechuck committed
166
		wp_enqueue_script( 'comment-reply' );
lucha's avatar
lucha committed
167
	}
lechuck's avatar
lechuck committed
168

lucha's avatar
lucha committed
169
	// Adds JavaScript for handling the navigation menu hide-and-show behavior.
lucha's avatar
lucha committed
170
	wp_enqueue_script( 'twentytwelve-navigation', get_template_directory_uri() . '/js/navigation.js', array( 'jquery' ), '20140711', true );
lechuck's avatar
lechuck committed
171 172

	$font_url = twentytwelve_get_font_url();
lucha's avatar
lucha committed
173
	if ( ! empty( $font_url ) ) {
lechuck's avatar
lechuck committed
174
		wp_enqueue_style( 'twentytwelve-fonts', esc_url_raw( $font_url ), array(), null );
lucha's avatar
lucha committed
175
	}
lechuck's avatar
lechuck committed
176

lucha's avatar
lucha committed
177
	// Loads our main stylesheet.
lechuck's avatar
lechuck committed
178 179
	wp_enqueue_style( 'twentytwelve-style', get_stylesheet_uri() );

lucha's avatar
lucha committed
180
	// Theme block stylesheet.
lucha's avatar
lucha committed
181
	wp_enqueue_style( 'twentytwelve-block-style', get_template_directory_uri() . '/css/blocks.css', array( 'twentytwelve-style' ), '20181230' );
lucha's avatar
lucha committed
182

lucha's avatar
lucha committed
183
	// Loads the Internet Explorer specific stylesheet.
lechuck's avatar
lechuck committed
184 185 186 187 188
	wp_enqueue_style( 'twentytwelve-ie', get_template_directory_uri() . '/css/ie.css', array( 'twentytwelve-style' ), '20121010' );
	$wp_styles->add_data( 'twentytwelve-ie', 'conditional', 'lt IE 9' );
}
add_action( 'wp_enqueue_scripts', 'twentytwelve_scripts_styles' );

lucha's avatar
lucha committed
189
/**
lucha's avatar
lucha committed
190
 * Enqueue styles for the block-based editor.
lucha's avatar
lucha committed
191 192 193 194 195
 *
 * @since Twenty Twelve 2.6
 */
function twentytwelve_block_editor_styles() {
	// Block styles.
lucha's avatar
lucha committed
196
	wp_enqueue_style( 'twentytwelve-block-editor-style', get_template_directory_uri() . '/css/editor-blocks.css', array(), '20181230' );
lucha's avatar
lucha committed
197 198 199 200 201
	// Add custom fonts.
	wp_enqueue_style( 'twentytwelve-fonts', twentytwelve_get_font_url(), array(), null );
}
add_action( 'enqueue_block_editor_assets', 'twentytwelve_block_editor_styles' );

lucha's avatar
lucha committed
202 203 204 205 206 207 208 209 210
/**
 * Add preconnect for Google Fonts.
 *
 * @since Twenty Twelve 2.2
 *
 * @param array   $urls          URLs to print for resource hints.
 * @param string  $relation_type The relation type the URLs are printed.
 * @return array URLs to print for resource hints.
 */
lucha's avatar
lucha committed
211
/*
lucha's avatar
lucha committed
212 213 214 215 216 217 218 219 220 221 222 223 224 225 226
function twentytwelve_resource_hints( $urls, $relation_type ) {
	if ( wp_style_is( 'twentytwelve-fonts', 'queue' ) && 'preconnect' === $relation_type ) {
		if ( version_compare( $GLOBALS['wp_version'], '4.7-alpha', '>=' ) ) {
			$urls[] = array(
				'href' => 'https://fonts.gstatic.com',
				'crossorigin',
			);
		} else {
			$urls[] = 'https://fonts.gstatic.com';
		}
	}

	return $urls;
}
add_filter( 'wp_resource_hints', 'twentytwelve_resource_hints', 10, 2 );
lucha's avatar
lucha committed
227
*/
lucha's avatar
lucha committed
228

lechuck's avatar
lechuck committed
229
/**
lucha's avatar
lucha committed
230 231
 * Filter TinyMCE CSS path to include Google Fonts.
 *
lechuck's avatar
lechuck committed
232 233 234 235 236 237 238
 * 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.
lucha's avatar
lucha committed
239
 * @return string Filtered CSS path.
lechuck's avatar
lechuck committed
240 241 242 243
 */
function twentytwelve_mce_css( $mce_css ) {
	$font_url = twentytwelve_get_font_url();

lucha's avatar
lucha committed
244
	if ( empty( $font_url ) ) {
lechuck's avatar
lechuck committed
245
		return $mce_css;
lucha's avatar
lucha committed
246
	}
lechuck's avatar
lechuck committed
247

lucha's avatar
lucha committed
248
	if ( ! empty( $mce_css ) ) {
lechuck's avatar
lechuck committed
249
		$mce_css .= ',';
lucha's avatar
lucha committed
250
	}
lechuck's avatar
lechuck committed
251 252 253 254 255 256 257

	$mce_css .= esc_url_raw( str_replace( ',', '%2C', $font_url ) );

	return $mce_css;
}
add_filter( 'mce_css', 'twentytwelve_mce_css' );

lechuck's avatar
lechuck committed
258
/**
lucha's avatar
lucha committed
259 260
 * Filter the page title.
 *
lechuck's avatar
lechuck committed
261 262 263 264 265 266 267 268 269 270 271 272
 * Creates a nicely formatted and more specific title element text
 * for output in head of document, based on current view.
 *
 * @since Twenty Twelve 1.0
 *
 * @param string $title Default title text for current view.
 * @param string $sep Optional separator.
 * @return string Filtered title.
 */
function twentytwelve_wp_title( $title, $sep ) {
	global $paged, $page;

lucha's avatar
lucha committed
273
	if ( is_feed() ) {
lechuck's avatar
lechuck committed
274
		return $title;
lucha's avatar
lucha committed
275
	}
lechuck's avatar
lechuck committed
276 277

	// Add the site name.
lechuck's avatar
lechuck committed
278
	$title .= get_bloginfo( 'name', 'display' );
lechuck's avatar
lechuck committed
279 280 281

	// Add the site description for the home/front page.
	$site_description = get_bloginfo( 'description', 'display' );
lucha's avatar
lucha committed
282
	if ( $site_description && ( is_home() || is_front_page() ) ) {
lechuck's avatar
lechuck committed
283
		$title = "$title $sep $site_description";
lucha's avatar
lucha committed
284
	}
lechuck's avatar
lechuck committed
285 286

	// Add a page number if necessary.
lucha's avatar
lucha committed
287
	if ( ( $paged >= 2 || $page >= 2 ) && ! is_404() ) {
lechuck's avatar
lechuck committed
288
		$title = "$title $sep " . sprintf( __( 'Page %s', 'twentytwelve' ), max( $paged, $page ) );
lucha's avatar
lucha committed
289
	}
lechuck's avatar
lechuck committed
290 291 292 293 294 295

	return $title;
}
add_filter( 'wp_title', 'twentytwelve_wp_title', 10, 2 );

/**
lucha's avatar
lucha committed
296 297
 * Filter the page menu arguments.
 *
lechuck's avatar
lechuck committed
298 299 300 301 302
 * Makes our wp_nav_menu() fallback -- wp_page_menu() -- show a home link.
 *
 * @since Twenty Twelve 1.0
 */
function twentytwelve_page_menu_args( $args ) {
lucha's avatar
lucha committed
303
	if ( ! isset( $args['show_home'] ) ) {
lechuck's avatar
lechuck committed
304
		$args['show_home'] = true;
lucha's avatar
lucha committed
305
	}
lechuck's avatar
lechuck committed
306 307 308 309 310
	return $args;
}
add_filter( 'wp_page_menu_args', 'twentytwelve_page_menu_args' );

/**
lucha's avatar
lucha committed
311 312
 * Register sidebars.
 *
lechuck's avatar
lechuck committed
313 314 315 316 317
 * Registers our main widget area and the front page widget areas.
 *
 * @since Twenty Twelve 1.0
 */
function twentytwelve_widgets_init() {
lucha's avatar
lucha committed
318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352
	register_sidebar(
		array(
			'name'          => __( 'Main Sidebar', 'twentytwelve' ),
			'id'            => 'sidebar-1',
			'description'   => __( 'Appears on posts and pages except the optional Front Page template, which has its own widgets', 'twentytwelve' ),
			'before_widget' => '<aside id="%1$s" class="widget %2$s">',
			'after_widget'  => '</aside>',
			'before_title'  => '<h3 class="widget-title">',
			'after_title'   => '</h3>',
		)
	);

	register_sidebar(
		array(
			'name'          => __( 'First Front Page Widget Area', 'twentytwelve' ),
			'id'            => 'sidebar-2',
			'description'   => __( 'Appears when using the optional Front Page template with a page set as Static Front Page', 'twentytwelve' ),
			'before_widget' => '<aside id="%1$s" class="widget %2$s">',
			'after_widget'  => '</aside>',
			'before_title'  => '<h3 class="widget-title">',
			'after_title'   => '</h3>',
		)
	);

	register_sidebar(
		array(
			'name'          => __( 'Second Front Page Widget Area', 'twentytwelve' ),
			'id'            => 'sidebar-3',
			'description'   => __( 'Appears when using the optional Front Page template with a page set as Static Front Page', 'twentytwelve' ),
			'before_widget' => '<aside id="%1$s" class="widget %2$s">',
			'after_widget'  => '</aside>',
			'before_title'  => '<h3 class="widget-title">',
			'after_title'   => '</h3>',
		)
	);
lechuck's avatar
lechuck committed
353 354 355 356
}
add_action( 'widgets_init', 'twentytwelve_widgets_init' );

if ( ! function_exists( 'twentytwelve_content_nav' ) ) :
lucha's avatar
lucha committed
357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373
	/**
	 * Displays navigation to next/previous pages when applicable.
	 *
	 * @since Twenty Twelve 1.0
	 */
	function twentytwelve_content_nav( $html_id ) {
		global $wp_query;

		if ( $wp_query->max_num_pages > 1 ) : ?>
			<nav id="<?php echo esc_attr( $html_id ); ?>" class="navigation" role="navigation">
				<h3 class="assistive-text"><?php _e( 'Post navigation', 'twentytwelve' ); ?></h3>
				<div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">&larr;</span> Older posts', 'twentytwelve' ) ); ?></div>
				<div class="nav-next"><?php previous_posts_link( __( 'Newer posts <span class="meta-nav">&rarr;</span>', 'twentytwelve' ) ); ?></div>
			</nav><!-- .navigation -->
			<?php
	endif;
	}
lechuck's avatar
lechuck committed
374 375 376
endif;

if ( ! function_exists( 'twentytwelve_comment' ) ) :
lucha's avatar
lucha committed
377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394
	/**
	 * Template for comments and pingbacks.
	 *
	 * To override this walker in a child theme without modifying the comments template
	 * simply create your own twentytwelve_comment(), and that function will be used instead.
	 *
	 * Used as a callback by wp_list_comments() for displaying the comments.
	 *
	 * @since Twenty Twelve 1.0
	 */
	function twentytwelve_comment( $comment, $args, $depth ) {
		$GLOBALS['comment'] = $comment;
		switch ( $comment->comment_type ) :
			case 'pingback':
			case 'trackback':
				// Display trackbacks differently than normal comments.
				?>
		<li <?php comment_class(); ?> id="comment-<?php comment_ID(); ?>">
lechuck's avatar
lechuck committed
395
		<p><?php _e( 'Pingback:', 'twentytwelve' ); ?> <?php comment_author_link(); ?> <?php edit_comment_link( __( '(Edit)', 'twentytwelve' ), '<span class="edit-link">', '</span>' ); ?></p>
lucha's avatar
lucha committed
396 397 398 399 400 401 402
				<?php
				break;
			default:
				// Proceed with normal comments.
				global $post;
				?>
		<li <?php comment_class(); ?> id="li-comment-<?php comment_ID(); ?>">
lechuck's avatar
lechuck committed
403 404 405 406
		<article id="comment-<?php comment_ID(); ?>" class="comment">
			<header class="comment-meta comment-author vcard">
				<?php
					echo get_avatar( $comment, 44 );
lucha's avatar
lucha committed
407 408
					printf(
						'<cite><b class="fn">%1$s</b> %2$s</cite>',
lechuck's avatar
lechuck committed
409 410
						get_comment_author_link(),
						// If current post author is also comment author, make it known visually.
lechuck's avatar
lechuck committed
411
						( $comment->user_id === $post->post_author ) ? '<span>' . __( 'Post author', 'twentytwelve' ) . '</span>' : ''
lechuck's avatar
lechuck committed
412
					);
lucha's avatar
lucha committed
413 414
					printf(
						'<a href="%1$s"><time datetime="%2$s">%3$s</time></a>',
lechuck's avatar
lechuck committed
415 416 417 418 419
						esc_url( get_comment_link( $comment->comment_ID ) ),
						get_comment_time( 'c' ),
						/* translators: 1: date, 2: time */
						sprintf( __( '%1$s at %2$s', 'twentytwelve' ), get_comment_date(), get_comment_time() )
					);
lucha's avatar
lucha committed
420
				?>
lucha's avatar
lucha committed
421
				</header><!-- .comment-meta -->
lechuck's avatar
lechuck committed
422

lucha's avatar
lucha committed
423
				<?php if ( '0' == $comment->comment_approved ) : ?>
lechuck's avatar
lechuck committed
424 425 426
				<p class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation.', 'twentytwelve' ); ?></p>
			<?php endif; ?>

lucha's avatar
lucha committed
427
				<section class="comment-content comment">
lechuck's avatar
lechuck committed
428 429
				<?php comment_text(); ?>
				<?php edit_comment_link( __( 'Edit', 'twentytwelve' ), '<p class="edit-link">', '</p>' ); ?>
lucha's avatar
lucha committed
430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451
				</section><!-- .comment-content -->

				<div class="reply">
				<?php
				comment_reply_link(
					array_merge(
						$args,
						array(
							'reply_text' => __( 'Reply', 'twentytwelve' ),
							'after'      => ' <span>&darr;</span>',
							'depth'      => $depth,
							'max_depth'  => $args['max_depth'],
						)
					)
				);
				?>
				</div><!-- .reply -->
			</article><!-- #comment-## -->
				<?php
				break;
		endswitch; // end comment_type check
	}
lechuck's avatar
lechuck committed
452 453 454
endif;

if ( ! function_exists( 'twentytwelve_entry_meta' ) ) :
lucha's avatar
lucha committed
455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477
	/**
	 * Set up post entry meta.
	 *
	 * Prints HTML with meta information for current post: categories, tags, permalink, author, and date.
	 *
	 * Create your own twentytwelve_entry_meta() to override in a child theme.
	 *
	 * @since Twenty Twelve 1.0
	 */
	function twentytwelve_entry_meta() {
		// Translators: used between list items, there is a space after the comma.
		$categories_list = get_the_category_list( __( ', ', 'twentytwelve' ) );

		// Translators: used between list items, there is a space after the comma.
		$tag_list = get_the_tag_list( '', __( ', ', 'twentytwelve' ) );

		$date = sprintf(
			'<a href="%1$s" title="%2$s" rel="bookmark"><time class="entry-date" datetime="%3$s">%4$s</time></a>',
			esc_url( get_permalink() ),
			esc_attr( get_the_time() ),
			esc_attr( get_the_date( 'c' ) ),
			esc_html( get_the_date() )
		);
lechuck's avatar
lechuck committed
478

lucha's avatar
lucha committed
479 480 481 482 483 484
		$author = sprintf(
			'<span class="author vcard"><a class="url fn n" href="%1$s" title="%2$s" rel="author">%3$s</a></span>',
			esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
			esc_attr( sprintf( __( 'View all posts by %s', 'twentytwelve' ), get_the_author() ) ),
			get_the_author()
		);
lechuck's avatar
lechuck committed
485

lucha's avatar
lucha committed
486 487 488 489 490 491 492 493
		// Translators: 1 is category, 2 is tag, 3 is the date and 4 is the author's name.
		if ( $tag_list ) {
			$utility_text = __( 'This entry was posted in %1$s and tagged %2$s on %3$s<span class="by-author"> by %4$s</span>.', 'twentytwelve' );
		} elseif ( $categories_list ) {
			$utility_text = __( 'This entry was posted in %1$s on %3$s<span class="by-author"> by %4$s</span>.', 'twentytwelve' );
		} else {
			$utility_text = __( 'This entry was posted on %3$s<span class="by-author"> by %4$s</span>.', 'twentytwelve' );
		}
lucha's avatar
lucha committed
494

lucha's avatar
lucha committed
495 496 497 498 499 500 501 502
		printf(
			$utility_text,
			$categories_list,
			$tag_list,
			$date,
			$author
		);
	}
lechuck's avatar
lechuck committed
503 504 505
endif;

/**
lucha's avatar
lucha committed
506 507
 * Extend the default WordPress body classes.
 *
lechuck's avatar
lechuck committed
508 509 510 511 512 513 514 515 516 517 518
 * Extends the default WordPress body class to denote:
 * 1. Using a full-width layout, when no active widgets in the sidebar
 *    or full-width template.
 * 2. Front Page template: thumbnail in use and number of sidebars for
 *    widget areas.
 * 3. White or empty background color to change the layout and spacing.
 * 4. Custom fonts enabled.
 * 5. Single or multiple authors.
 *
 * @since Twenty Twelve 1.0
 *
lucha's avatar
lucha committed
519
 * @param array $classes Existing class values.
lechuck's avatar
lechuck committed
520 521 522 523
 * @return array Filtered class values.
 */
function twentytwelve_body_class( $classes ) {
	$background_color = get_background_color();
lechuck's avatar
lechuck committed
524
	$background_image = get_background_image();
lechuck's avatar
lechuck committed
525

lucha's avatar
lucha committed
526
	if ( ! is_active_sidebar( 'sidebar-1' ) || is_page_template( 'page-templates/full-width.php' ) ) {
lechuck's avatar
lechuck committed
527
		$classes[] = 'full-width';
lucha's avatar
lucha committed
528
	}
lechuck's avatar
lechuck committed
529 530 531

	if ( is_page_template( 'page-templates/front-page.php' ) ) {
		$classes[] = 'template-front-page';
lucha's avatar
lucha committed
532
		if ( has_post_thumbnail() ) {
lechuck's avatar
lechuck committed
533
			$classes[] = 'has-post-thumbnail';
lucha's avatar
lucha committed
534 535
		}
		if ( is_active_sidebar( 'sidebar-2' ) && is_active_sidebar( 'sidebar-3' ) ) {
lechuck's avatar
lechuck committed
536
			$classes[] = 'two-sidebars';
lucha's avatar
lucha committed
537
		}
lechuck's avatar
lechuck committed
538 539
	}

lechuck's avatar
lechuck committed
540
	if ( empty( $background_image ) ) {
lucha's avatar
lucha committed
541
		if ( empty( $background_color ) ) {
lechuck's avatar
lechuck committed
542
			$classes[] = 'custom-background-empty';
lucha's avatar
lucha committed
543
		} elseif ( in_array( $background_color, array( 'fff', 'ffffff' ) ) ) {
lechuck's avatar
lechuck committed
544
			$classes[] = 'custom-background-white';
lucha's avatar
lucha committed
545
		}
lechuck's avatar
lechuck committed
546
	}
lechuck's avatar
lechuck committed
547 548

	// Enable custom font class only if the font CSS is queued to load.
lucha's avatar
lucha committed
549
	if ( wp_style_is( 'twentytwelve-fonts', 'queue' ) ) {
lechuck's avatar
lechuck committed
550
		$classes[] = 'custom-font-enabled';
lucha's avatar
lucha committed
551
	}
lechuck's avatar
lechuck committed
552

lucha's avatar
lucha committed
553
	if ( ! is_multi_author() ) {
lechuck's avatar
lechuck committed
554
		$classes[] = 'single-author';
lucha's avatar
lucha committed
555
	}
lechuck's avatar
lechuck committed
556 557 558 559 560 561

	return $classes;
}
add_filter( 'body_class', 'twentytwelve_body_class' );

/**
lucha's avatar
lucha committed
562 563
 * Adjust content width in certain contexts.
 *
lechuck's avatar
lechuck committed
564 565 566 567 568 569 570 571 572 573 574 575 576 577
 * Adjusts content_width value for full-width and single image attachment
 * templates, and when there are no active widgets in the sidebar.
 *
 * @since Twenty Twelve 1.0
 */
function twentytwelve_content_width() {
	if ( is_page_template( 'page-templates/full-width.php' ) || is_attachment() || ! is_active_sidebar( 'sidebar-1' ) ) {
		global $content_width;
		$content_width = 960;
	}
}
add_action( 'template_redirect', 'twentytwelve_content_width' );

/**
lucha's avatar
lucha committed
578 579 580
 * Register postMessage support.
 *
 * Add postMessage support for site title and description for the Customizer.
lechuck's avatar
lechuck committed
581 582 583
 *
 * @since Twenty Twelve 1.0
 *
lucha's avatar
lucha committed
584
 * @param WP_Customize_Manager $wp_customize Customizer object.
lechuck's avatar
lechuck committed
585 586
 */
function twentytwelve_customize_register( $wp_customize ) {
lechuck's avatar
lechuck committed
587 588 589
	$wp_customize->get_setting( 'blogname' )->transport         = 'postMessage';
	$wp_customize->get_setting( 'blogdescription' )->transport  = 'postMessage';
	$wp_customize->get_setting( 'header_textcolor' )->transport = 'postMessage';
lechuck's avatar
lechuck committed
590 591

	if ( isset( $wp_customize->selective_refresh ) ) {
lucha's avatar
lucha committed
592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607
		$wp_customize->selective_refresh->add_partial(
			'blogname',
			array(
				'selector'            => '.site-title > a',
				'container_inclusive' => false,
				'render_callback'     => 'twentytwelve_customize_partial_blogname',
			)
		);
		$wp_customize->selective_refresh->add_partial(
			'blogdescription',
			array(
				'selector'            => '.site-description',
				'container_inclusive' => false,
				'render_callback'     => 'twentytwelve_customize_partial_blogdescription',
			)
		);
lechuck's avatar
lechuck committed
608
	}
lechuck's avatar
lechuck committed
609 610 611
}
add_action( 'customize_register', 'twentytwelve_customize_register' );

lechuck's avatar
lechuck committed
612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635
/**
 * Render the site title for the selective refresh partial.
 *
 * @since Twenty Twelve 2.0
 * @see twentytwelve_customize_register()
 *
 * @return void
 */
function twentytwelve_customize_partial_blogname() {
	bloginfo( 'name' );
}

/**
 * Render the site tagline for the selective refresh partial.
 *
 * @since Twenty Twelve 2.0
 * @see twentytwelve_customize_register()
 *
 * @return void
 */
function twentytwelve_customize_partial_blogdescription() {
	bloginfo( 'description' );
}

lechuck's avatar
lechuck committed
636
/**
lucha's avatar
lucha committed
637 638 639
 * Enqueue Javascript postMessage handlers for the Customizer.
 *
 * Binds JS handlers to make the Customizer preview reload changes asynchronously.
lechuck's avatar
lechuck committed
640 641 642 643
 *
 * @since Twenty Twelve 1.0
 */
function twentytwelve_customize_preview_js() {
ale's avatar
ale committed
644
	wp_enqueue_script( 'twentytwelve-customizer', get_template_directory_uri() . '/js/theme-customizer.js', array( 'customize-preview' ), '20141120', true );
lechuck's avatar
lechuck committed
645 646
}
add_action( 'customize_preview_init', 'twentytwelve_customize_preview_js' );
lucha's avatar
lucha committed
647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665

/**
 * Modifies tag cloud widget arguments to display all tags in the same font size
 * and use list format for better accessibility.
 *
 * @since Twenty Twelve 2.4
 *
 * @param array $args Arguments for tag cloud widget.
 * @return array The filtered arguments for tag cloud widget.
 */
function twentytwelve_widget_tag_cloud_args( $args ) {
	$args['largest']  = 22;
	$args['smallest'] = 8;
	$args['unit']     = 'pt';
	$args['format']   = 'list';

	return $args;
}
add_filter( 'widget_tag_cloud_args', 'twentytwelve_widget_tag_cloud_args' );
samba's avatar
samba committed
666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683

if ( ! function_exists( 'wp_body_open' ) ) :
	/**
	 * Fire the wp_body_open action.
	 *
	 * Added for backwards compatibility to support pre 5.2.0 WordPress versions.
	 *
	 * @since Twenty Twelve 3.0
	 */
	function wp_body_open() {
		/**
		 * Triggered after the opening <body> tag.
		 *
		 * @since Twenty Twelve 3.0
		 */
		do_action( 'wp_body_open' );
	}
endif;