diff -r 490d5cc509ed -r cf61fcea0001 wp/wp-content/themes/twentytwelve/functions.php --- a/wp/wp-content/themes/twentytwelve/functions.php Tue Jun 09 11:14:17 2015 +0000 +++ b/wp/wp-content/themes/twentytwelve/functions.php Mon Oct 14 17:39:30 2019 +0200 @@ -23,8 +23,9 @@ */ // Set up the content width value based on the theme's design and stylesheet. -if ( ! isset( $content_width ) ) +if ( ! isset( $content_width ) ) { $content_width = 625; +} /** * Twenty Twelve setup. @@ -35,7 +36,7 @@ * @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, - * custom background, and post formats. + * custom background, and post formats. * @uses register_nav_menu() To add support for navigation menus. * @uses set_post_thumbnail_size() To set a custom post thumbnail size. * @@ -45,11 +46,11 @@ /* * Makes Twenty Twelve available for translation. * - * Translations can be added to the /languages/ directory. + * Translations can be filed at WordPress.org. See: https://translate.wordpress.org/projects/wp-themes/twentytwelve * 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. */ - load_theme_textdomain( 'twentytwelve', get_template_directory() . '/languages' ); + load_theme_textdomain( 'twentytwelve' ); // This theme styles the visual editor with editor-style.css to match the theme style. add_editor_style(); @@ -67,13 +68,18 @@ * This theme supports custom background color and image, * and here we also set up the default background color. */ - add_theme_support( 'custom-background', array( - 'default-color' => 'e6e6e6', - ) ); + add_theme_support( + 'custom-background', array( + 'default-color' => 'e6e6e6', + ) + ); // 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 + + // Indicate widget sidebars can use selective refresh in the Customizer. + add_theme_support( 'customize-selective-refresh-widgets' ); } add_action( 'after_setup_theme', 'twentytwelve_setup' ); @@ -106,26 +112,26 @@ */ $subset = _x( 'no-subset', 'Open Sans font: add new subset (greek, cyrillic, vietnamese)', 'twentytwelve' ); - if ( 'cyrillic' == $subset ) + if ( 'cyrillic' == $subset ) { $subsets .= ',cyrillic,cyrillic-ext'; - elseif ( 'greek' == $subset ) + } elseif ( 'greek' == $subset ) { $subsets .= ',greek,greek-ext'; - elseif ( 'vietnamese' == $subset ) + } elseif ( 'vietnamese' == $subset ) { $subsets .= ',vietnamese'; + } - $protocol = is_ssl() ? 'https' : 'http'; $query_args = array( 'family' => 'Open+Sans:400italic,700italic,400,700', 'subset' => $subsets, ); - $font_url = add_query_arg( $query_args, "$protocol://fonts.googleapis.com/css" ); + $font_url = add_query_arg( $query_args, 'https://fonts.googleapis.com/css' ); } return $font_url; } /** - * Enqueue scripts and styles for front-end. + * Enqueue scripts and styles for front end. * * @since Twenty Twelve 1.0 */ @@ -136,15 +142,17 @@ * 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' ) ) + 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( 'jquery' ), '20140711', true ); $font_url = twentytwelve_get_font_url(); - if ( ! empty( $font_url ) ) + if ( ! empty( $font_url ) ) { wp_enqueue_style( 'twentytwelve-fonts', esc_url_raw( $font_url ), array(), null ); + } // Loads our main stylesheet. wp_enqueue_style( 'twentytwelve-style', get_stylesheet_uri() ); @@ -156,6 +164,31 @@ add_action( 'wp_enqueue_scripts', 'twentytwelve_scripts_styles' ); /** + * 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. + */ +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 ); + +/** * Filter TinyMCE CSS path to include Google Fonts. * * Adds additional stylesheets to the TinyMCE editor if needed. @@ -170,11 +203,13 @@ function twentytwelve_mce_css( $mce_css ) { $font_url = twentytwelve_get_font_url(); - if ( empty( $font_url ) ) + if ( empty( $font_url ) ) { return $mce_css; + } - if ( ! empty( $mce_css ) ) + if ( ! empty( $mce_css ) ) { $mce_css .= ','; + } $mce_css .= esc_url_raw( str_replace( ',', '%2C', $font_url ) ); @@ -197,20 +232,23 @@ function twentytwelve_wp_title( $title, $sep ) { global $paged, $page; - if ( is_feed() ) + if ( is_feed() ) { return $title; + } // Add the site name. $title .= get_bloginfo( 'name', 'display' ); // Add the site description for the home/front page. $site_description = get_bloginfo( 'description', 'display' ); - if ( $site_description && ( is_home() || is_front_page() ) ) + if ( $site_description && ( is_home() || is_front_page() ) ) { $title = "$title $sep $site_description"; + } // Add a page number if necessary. - if ( ( $paged >= 2 || $page >= 2 ) && ! is_404() ) + if ( ( $paged >= 2 || $page >= 2 ) && ! is_404() ) { $title = "$title $sep " . sprintf( __( 'Page %s', 'twentytwelve' ), max( $paged, $page ) ); + } return $title; } @@ -224,8 +262,9 @@ * @since Twenty Twelve 1.0 */ function twentytwelve_page_menu_args( $args ) { - if ( ! isset( $args['show_home'] ) ) + if ( ! isset( $args['show_home'] ) ) { $args['show_home'] = true; + } return $args; } add_filter( 'wp_page_menu_args', 'twentytwelve_page_menu_args' ); @@ -238,168 +277,190 @@ * @since Twenty Twelve 1.0 */ function twentytwelve_widgets_init() { - 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' => '', - 'before_title' => '

', - 'after_title' => '

', - ) ); + 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' => '', + 'before_title' => '

', + 'after_title' => '

', + ) + ); - 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' => '', - 'before_title' => '

', - 'after_title' => '

', - ) ); + 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' => '', + 'before_title' => '

', + 'after_title' => '

', + ) + ); - 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' => '', - 'before_title' => '

', - 'after_title' => '

', - ) ); + 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' => '', + 'before_title' => '

', + 'after_title' => '

', + ) + ); } add_action( 'widgets_init', 'twentytwelve_widgets_init' ); if ( ! function_exists( 'twentytwelve_content_nav' ) ) : -/** - * Displays navigation to next/previous pages when applicable. - * - * @since Twenty Twelve 1.0 - */ -function twentytwelve_content_nav( $html_id ) { - global $wp_query; + /** + * 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 ) : ?> - - max_num_pages > 1 ) : ?> + + comment_type ) : - case 'pingback' : - case 'trackback' : - // Display trackbacks differently than normal comments. - ?> -
  • id="comment-"> + /** + * 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. + ?> +
  • id="comment-">

    ', '' ); ?>

    -
  • id="li-comment-"> + break; + default: + // Proceed with normal comments. + global $post; + ?> +
  • id="li-comment-">
    %1$s %2$s', + printf( + '%1$s %2$s', get_comment_author_link(), // If current post author is also comment author, make it known visually. ( $comment->user_id === $post->post_author ) ? '' . __( 'Post author', 'twentytwelve' ) . '' : '' ); - printf( '', + printf( + '', 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() ) ); - ?> -
    + ?> + - comment_approved ) : ?> + comment_approved ) : ?>

    -
    +
    ', '

    ' ); ?> -
    +
    -
    - __( 'Reply', 'twentytwelve' ), 'after' => ' ', 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); ?> -
    -
    - + __( 'Reply', 'twentytwelve' ), + 'after' => ' ', + 'depth' => $depth, + 'max_depth' => $args['max_depth'], + ) + ) + ); +?> + + + ', - esc_url( get_permalink() ), - esc_attr( get_the_time() ), - esc_attr( get_the_date( 'c' ) ), - esc_html( get_the_date() ) - ); + $date = sprintf( + '', + esc_url( get_permalink() ), + esc_attr( get_the_time() ), + esc_attr( get_the_date( 'c' ) ), + esc_html( get_the_date() ) + ); - $author = sprintf( '', - 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() - ); + $author = sprintf( + '', + 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() + ); - // 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 by %4$s.', 'twentytwelve' ); - } elseif ( $categories_list ) { - $utility_text = __( 'This entry was posted in %1$s on %3$s by %4$s.', 'twentytwelve' ); - } else { - $utility_text = __( 'This entry was posted on %3$s by %4$s.', 'twentytwelve' ); - } + // 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 by %4$s.', 'twentytwelve' ); + } elseif ( $categories_list ) { + $utility_text = __( 'This entry was posted in %1$s on %3$s by %4$s.', 'twentytwelve' ); + } else { + $utility_text = __( 'This entry was posted on %3$s by %4$s.', 'twentytwelve' ); + } - printf( - $utility_text, - $categories_list, - $tag_list, - $date, - $author - ); -} + printf( + $utility_text, + $categories_list, + $tag_list, + $date, + $author + ); + } endif; /** @@ -423,30 +484,36 @@ $background_color = get_background_color(); $background_image = get_background_image(); - if ( ! is_active_sidebar( 'sidebar-1' ) || is_page_template( 'page-templates/full-width.php' ) ) + if ( ! is_active_sidebar( 'sidebar-1' ) || is_page_template( 'page-templates/full-width.php' ) ) { $classes[] = 'full-width'; + } if ( is_page_template( 'page-templates/front-page.php' ) ) { $classes[] = 'template-front-page'; - if ( has_post_thumbnail() ) + if ( has_post_thumbnail() ) { $classes[] = 'has-post-thumbnail'; - if ( is_active_sidebar( 'sidebar-2' ) && is_active_sidebar( 'sidebar-3' ) ) + } + if ( is_active_sidebar( 'sidebar-2' ) && is_active_sidebar( 'sidebar-3' ) ) { $classes[] = 'two-sidebars'; + } } if ( empty( $background_image ) ) { - if ( empty( $background_color ) ) + if ( empty( $background_color ) ) { $classes[] = 'custom-background-empty'; - elseif ( in_array( $background_color, array( 'fff', 'ffffff' ) ) ) + } elseif ( in_array( $background_color, array( 'fff', 'ffffff' ) ) ) { $classes[] = 'custom-background-white'; + } } // Enable custom font class only if the font CSS is queued to load. - if ( wp_style_is( 'twentytwelve-fonts', 'queue' ) ) + if ( wp_style_is( 'twentytwelve-fonts', 'queue' ) ) { $classes[] = 'custom-font-enabled'; + } - if ( ! is_multi_author() ) + if ( ! is_multi_author() ) { $classes[] = 'single-author'; + } return $classes; } @@ -481,10 +548,51 @@ $wp_customize->get_setting( 'blogname' )->transport = 'postMessage'; $wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage'; $wp_customize->get_setting( 'header_textcolor' )->transport = 'postMessage'; + + if ( isset( $wp_customize->selective_refresh ) ) { + $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', + ) + ); + } } add_action( 'customize_register', 'twentytwelve_customize_register' ); /** + * 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' ); +} + +/** * Enqueue Javascript postMessage handlers for the Customizer. * * Binds JS handlers to make the Customizer preview reload changes asynchronously. @@ -495,3 +603,23 @@ wp_enqueue_script( 'twentytwelve-customizer', get_template_directory_uri() . '/js/theme-customizer.js', array( 'customize-preview' ), '20141120', true ); } add_action( 'customize_preview_init', 'twentytwelve_customize_preview_js' ); + + +/** + * 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' );