From 893d3d6e9c4534897a09c37937f8f5a9fd81b916 Mon Sep 17 00:00:00 2001 From: lucha <lucha@paranoici.org> Date: Sun, 23 Aug 2015 16:17:33 +0200 Subject: [PATCH] Patch themes twenty* Patch theme twentyten, twentyeleven, twentytwelve, twentythirtheen, twentyfourteen, twentyfifteen, twentysixteen, twentyseventeen Added a/i credits, and removed Google Fonts API. --- wp-content/themes/twentyfifteen/footer.php | 83 +- wp-content/themes/twentyfifteen/functions.php | 1100 +++++++------ wp-content/themes/twentyfourteen/footer.php | 71 +- .../themes/twentyfourteen/functions.php | 1356 ++++++++--------- .../themes/twentyseventeen/functions.php | 7 +- wp-content/themes/twentysixteen/functions.php | 1176 +++++++------- wp-content/themes/twentyten/footer.php | 135 +- .../themes/twentythirteen/functions.php | 2 + wp-content/themes/twentytwelve/functions.php | 2 + 9 files changed, 1917 insertions(+), 2015 deletions(-) diff --git a/wp-content/themes/twentyfifteen/footer.php b/wp-content/themes/twentyfifteen/footer.php index eddaaafa6..3ed6ab719 100644 --- a/wp-content/themes/twentyfifteen/footer.php +++ b/wp-content/themes/twentyfifteen/footer.php @@ -1,44 +1,39 @@ -<?php -/** - * The template for displaying the footer - * - * Contains the closing of the "site-content" div and all content after. - * - * @package WordPress - * @subpackage Twenty_Fifteen - * @since Twenty Fifteen 1.0 - */ -?> - - </div><!-- .site-content --> - - <footer id="colophon" class="site-footer" role="contentinfo"> - <div class="site-info"> - <?php - /** - * Fires before the Twenty Fifteen footer text for footer customization. - * - * @since Twenty Fifteen 1.0 - */ - do_action( 'twentyfifteen_credits' ); - ?> - <?php - if ( function_exists( 'the_privacy_policy_link' ) ) { - the_privacy_policy_link( '', '<span role="separator" aria-hidden="true"></span>' ); - } - ?> - <a href="<?php echo esc_url( __( 'https://wordpress.org/', 'twentyfifteen' ) ); ?>" class="imprint"> - <?php - /* translators: %s: WordPress */ - printf( __( 'Proudly powered by %s', 'twentyfifteen' ), 'WordPress' ); - ?> - </a> - </div><!-- .site-info --> - </footer><!-- .site-footer --> - -</div><!-- .site --> - -<?php wp_footer(); ?> - -</body> -</html> +<?php +/** + * The template for displaying the footer + * + * Contains the closing of the "site-content" div and all content after. + * + * @package WordPress + * @subpackage Twenty_Fifteen + * @since Twenty Fifteen 1.0 + */ +?> + + </div><!-- .site-content --> + + <footer id="colophon" class="site-footer" role="contentinfo"> + <div class="site-info"> + <?php + /** + * Fires before the Twenty Fifteen footer text for footer customization. + * + * @since Twenty Fifteen 1.0 + */ + do_action( 'twentyfifteen_credits' ); + ?> + <?php + if ( function_exists( 'the_privacy_policy_link' ) ) { + the_privacy_policy_link( '', '<span role="separator" aria-hidden="true"></span>' ); + } + ?> + <strong>Proudly powered by <a href="http://www.autistici.org">R*</a></strong> + </div><!-- .site-info --> + </footer><!-- .site-footer --> + +</div><!-- .site --> + +<?php wp_footer(); ?> + +</body> +</html> diff --git a/wp-content/themes/twentyfifteen/functions.php b/wp-content/themes/twentyfifteen/functions.php index ab76041dd..9377780c1 100644 --- a/wp-content/themes/twentyfifteen/functions.php +++ b/wp-content/themes/twentyfifteen/functions.php @@ -1,583 +1,517 @@ -<?php -/** - * Twenty Fifteen functions and definitions - * - * Set 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. - * - * 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://developer.wordpress.org/themes/basics/theme-functions/ - * @link https://developer.wordpress.org/themes/advanced-topics/child-themes/ - * - * Functions that are not pluggable (not wrapped in function_exists()) are - * instead attached to a filter or action hook. - * - * For more information on hooks, actions, and filters, - * {@link https://developer.wordpress.org/plugins/} - * - * @package WordPress - * @subpackage Twenty_Fifteen - * @since Twenty Fifteen 1.0 - */ - -/** - * Set the content width based on the theme's design and stylesheet. - * - * @since Twenty Fifteen 1.0 - */ -if ( ! isset( $content_width ) ) { - $content_width = 660; -} - -/** - * Twenty Fifteen only works in WordPress 4.1 or later. - */ -if ( version_compare( $GLOBALS['wp_version'], '4.1-alpha', '<' ) ) { - require get_template_directory() . '/inc/back-compat.php'; -} - -if ( ! function_exists( 'twentyfifteen_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 for post thumbnails. - * - * @since Twenty Fifteen 1.0 - */ - function twentyfifteen_setup() { - - /* - * Make theme available for translation. - * Translations can be filed at WordPress.org. See: https://translate.wordpress.org/projects/wp-themes/twentyfifteen - * If you're building a theme based on twentyfifteen, use a find and replace - * to change 'twentyfifteen' to the name of your theme in all the template files - */ - load_theme_textdomain( 'twentyfifteen' ); - - // Add default posts and comments RSS feed links to head. - add_theme_support( 'automatic-feed-links' ); - - /* - * Let WordPress manage the document title. - * By adding theme support, we declare that this theme does not use a - * hard-coded <title> tag in the document head, and expect WordPress to - * provide it for us. - */ - add_theme_support( 'title-tag' ); - - /* - * Enable support for Post Thumbnails on posts and pages. - * - * See: https://developer.wordpress.org/reference/functions/add_theme_support/#post-thumbnails - */ - add_theme_support( 'post-thumbnails' ); - set_post_thumbnail_size( 825, 510, true ); - - // This theme uses wp_nav_menu() in two locations. - register_nav_menus( - array( - 'primary' => __( 'Primary Menu', 'twentyfifteen' ), - 'social' => __( 'Social Links Menu', 'twentyfifteen' ), - ) - ); - - /* - * Switch default core markup for search form, comment form, and comments - * to output valid HTML5. - */ - add_theme_support( - 'html5', - array( - 'search-form', - 'comment-form', - 'comment-list', - 'gallery', - 'caption', - 'script', - 'style', - ) - ); - - /* - * Enable support for Post Formats. - * - * See: https://wordpress.org/support/article/post-formats/ - */ - add_theme_support( - 'post-formats', - array( - 'aside', - 'image', - 'video', - 'quote', - 'link', - 'gallery', - 'status', - 'audio', - 'chat', - ) - ); - - /* - * Enable support for custom logo. - * - * @since Twenty Fifteen 1.5 - */ - add_theme_support( - 'custom-logo', - array( - 'height' => 248, - 'width' => 248, - 'flex-height' => true, - ) - ); - - $color_scheme = twentyfifteen_get_color_scheme(); - $default_color = trim( $color_scheme[0], '#' ); - - // Setup the WordPress core custom background feature. - - /** - * Filter Twenty Fifteen custom-header support arguments. - * - * @since Twenty Fifteen 1.0 - * - * @param array $args { - * An array of custom-header support arguments. - * - * @type string $default-color Default color of the header. - * @type string $default-attachment Default attachment of the header. - * } - */ - add_theme_support( - 'custom-background', - apply_filters( - 'twentyfifteen_custom_background_args', - array( - 'default-color' => $default_color, - 'default-attachment' => 'fixed', - ) - ) - ); - - /* - * This theme styles the visual editor to resemble the theme style, - * specifically font, colors, icons, and column width. - */ - add_editor_style( array( 'css/editor-style.css', 'genericons/genericons.css', twentyfifteen_fonts_url() ) ); - - // 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. - add_theme_support( - 'editor-color-palette', - array( - array( - 'name' => __( 'Dark Gray', 'twentyfifteen' ), - 'slug' => 'dark-gray', - 'color' => '#111', - ), - array( - 'name' => __( 'Light Gray', 'twentyfifteen' ), - 'slug' => 'light-gray', - 'color' => '#f1f1f1', - ), - array( - 'name' => __( 'White', 'twentyfifteen' ), - 'slug' => 'white', - 'color' => '#fff', - ), - array( - 'name' => __( 'Yellow', 'twentyfifteen' ), - 'slug' => 'yellow', - 'color' => '#f4ca16', - ), - array( - 'name' => __( 'Dark Brown', 'twentyfifteen' ), - 'slug' => 'dark-brown', - 'color' => '#352712', - ), - array( - 'name' => __( 'Medium Pink', 'twentyfifteen' ), - 'slug' => 'medium-pink', - 'color' => '#e53b51', - ), - array( - 'name' => __( 'Light Pink', 'twentyfifteen' ), - 'slug' => 'light-pink', - 'color' => '#ffe5d1', - ), - array( - 'name' => __( 'Dark Purple', 'twentyfifteen' ), - 'slug' => 'dark-purple', - 'color' => '#2e2256', - ), - array( - 'name' => __( 'Purple', 'twentyfifteen' ), - 'slug' => 'purple', - 'color' => '#674970', - ), - array( - 'name' => __( 'Blue Gray', 'twentyfifteen' ), - 'slug' => 'blue-gray', - 'color' => '#22313f', - ), - array( - 'name' => __( 'Bright Blue', 'twentyfifteen' ), - 'slug' => 'bright-blue', - 'color' => '#55c3dc', - ), - array( - 'name' => __( 'Light Blue', 'twentyfifteen' ), - 'slug' => 'light-blue', - 'color' => '#e9f2f9', - ), - ) - ); - - // Indicate widget sidebars can use selective refresh in the Customizer. - add_theme_support( 'customize-selective-refresh-widgets' ); - } -endif; // twentyfifteen_setup() -add_action( 'after_setup_theme', 'twentyfifteen_setup' ); - -/** - * Register widget area. - * - * @since Twenty Fifteen 1.0 - * - * @link https://developer.wordpress.org/reference/functions/register_sidebar/ - */ -function twentyfifteen_widgets_init() { - register_sidebar( - array( - 'name' => __( 'Widget Area', 'twentyfifteen' ), - 'id' => 'sidebar-1', - 'description' => __( 'Add widgets here to appear in your sidebar.', 'twentyfifteen' ), - 'before_widget' => '<aside id="%1$s" class="widget %2$s">', - 'after_widget' => '</aside>', - 'before_title' => '<h2 class="widget-title">', - 'after_title' => '</h2>', - ) - ); -} -add_action( 'widgets_init', 'twentyfifteen_widgets_init' ); - -if ( ! function_exists( 'twentyfifteen_fonts_url' ) ) : - /** - * Register Google fonts for Twenty Fifteen. - * - * @since Twenty Fifteen 1.0 - * - * @return string Google fonts URL for the theme. - */ - function twentyfifteen_fonts_url() { - $fonts_url = ''; - $fonts = array(); - $subsets = 'latin,latin-ext'; - - /* - * translators: If there are characters in your language that are not supported - * by Noto Sans, translate this to 'off'. Do not translate into your own language. - */ - if ( 'off' !== _x( 'on', 'Noto Sans font: on or off', 'twentyfifteen' ) ) { - $fonts[] = 'Noto Sans:400italic,700italic,400,700'; - } - - /* - * translators: If there are characters in your language that are not supported - * by Noto Serif, translate this to 'off'. Do not translate into your own language. - */ - if ( 'off' !== _x( 'on', 'Noto Serif font: on or off', 'twentyfifteen' ) ) { - $fonts[] = 'Noto Serif:400italic,700italic,400,700'; - } - - /* - * translators: If there are characters in your language that are not supported - * by Inconsolata, translate this to 'off'. Do not translate into your own language. - */ - if ( 'off' !== _x( 'on', 'Inconsolata font: on or off', 'twentyfifteen' ) ) { - $fonts[] = 'Inconsolata:400,700'; - } - - /* - * translators: To add an additional character subset specific to your language, - * translate this to 'greek', 'cyrillic', 'devanagari' or 'vietnamese'. Do not translate into your own language. - */ - $subset = _x( 'no-subset', 'Add new subset (greek, cyrillic, devanagari, vietnamese)', 'twentyfifteen' ); - - if ( 'cyrillic' == $subset ) { - $subsets .= ',cyrillic,cyrillic-ext'; - } elseif ( 'greek' == $subset ) { - $subsets .= ',greek,greek-ext'; - } elseif ( 'devanagari' == $subset ) { - $subsets .= ',devanagari'; - } elseif ( 'vietnamese' == $subset ) { - $subsets .= ',vietnamese'; - } - - if ( $fonts ) { - $fonts_url = add_query_arg( - array( - 'family' => urlencode( implode( '|', $fonts ) ), - 'subset' => urlencode( $subsets ), - 'display' => urlencode( 'fallback' ), - ), - 'https://fonts.googleapis.com/css' - ); - } - - return $fonts_url; - } -endif; - -/** - * JavaScript Detection. - * - * Adds a `js` class to the root `<html>` element when JavaScript is detected. - * - * @since Twenty Fifteen 1.1 - */ -function twentyfifteen_javascript_detection() { - echo "<script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script>\n"; -} -add_action( 'wp_head', 'twentyfifteen_javascript_detection', 0 ); - -/** - * Enqueue scripts and styles. - * - * @since Twenty Fifteen 1.0 - */ -function twentyfifteen_scripts() { - // Add custom fonts, used in the main stylesheet. - wp_enqueue_style( 'twentyfifteen-fonts', twentyfifteen_fonts_url(), array(), null ); - - // Add Genericons, used in the main stylesheet. - wp_enqueue_style( 'genericons', get_template_directory_uri() . '/genericons/genericons.css', array(), '3.2' ); - - // Load our main stylesheet. - wp_enqueue_style( 'twentyfifteen-style', get_stylesheet_uri(), array(), '20190507' ); - - // Theme block stylesheet. - wp_enqueue_style( 'twentyfifteen-block-style', get_template_directory_uri() . '/css/blocks.css', array( 'twentyfifteen-style' ), '20190102' ); - - // Load the Internet Explorer specific stylesheet. - wp_enqueue_style( 'twentyfifteen-ie', get_template_directory_uri() . '/css/ie.css', array( 'twentyfifteen-style' ), '20170916' ); - wp_style_add_data( 'twentyfifteen-ie', 'conditional', 'lt IE 9' ); - - // Load the Internet Explorer 7 specific stylesheet. - wp_enqueue_style( 'twentyfifteen-ie7', get_template_directory_uri() . '/css/ie7.css', array( 'twentyfifteen-style' ), '20141210' ); - wp_style_add_data( 'twentyfifteen-ie7', 'conditional', 'lt IE 8' ); - - wp_enqueue_script( 'twentyfifteen-skip-link-focus-fix', get_template_directory_uri() . '/js/skip-link-focus-fix.js', array(), '20141028', true ); - - if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { - wp_enqueue_script( 'comment-reply' ); - } - - if ( is_singular() && wp_attachment_is_image() ) { - wp_enqueue_script( 'twentyfifteen-keyboard-image-navigation', get_template_directory_uri() . '/js/keyboard-image-navigation.js', array( 'jquery' ), '20141210' ); - } - - wp_enqueue_script( 'twentyfifteen-script', get_template_directory_uri() . '/js/functions.js', array( 'jquery' ), '20171218', true ); - wp_localize_script( - 'twentyfifteen-script', - 'screenReaderText', - array( - 'expand' => '<span class="screen-reader-text">' . __( 'expand child menu', 'twentyfifteen' ) . '</span>', - 'collapse' => '<span class="screen-reader-text">' . __( 'collapse child menu', 'twentyfifteen' ) . '</span>', - ) - ); -} -add_action( 'wp_enqueue_scripts', 'twentyfifteen_scripts' ); - -/** - * Enqueue styles for the block-based editor. - * - * @since Twenty Fifteen 2.1 - */ -function twentyfifteen_block_editor_styles() { - // Block styles. - wp_enqueue_style( 'twentyfifteen-block-editor-style', get_template_directory_uri() . '/css/editor-blocks.css', array(), '20190102' ); - // Add custom fonts. - wp_enqueue_style( 'twentyfifteen-fonts', twentyfifteen_fonts_url(), array(), null ); -} -add_action( 'enqueue_block_editor_assets', 'twentyfifteen_block_editor_styles' ); - - -/** - * Add preconnect for Google Fonts. - * - * @since Twenty Fifteen 1.7 - * - * @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 twentyfifteen_resource_hints( $urls, $relation_type ) { - if ( wp_style_is( 'twentyfifteen-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', 'twentyfifteen_resource_hints', 10, 2 ); - -/** - * Add featured image as background image to post navigation elements. - * - * @since Twenty Fifteen 1.0 - * - * @see wp_add_inline_style() - */ -function twentyfifteen_post_nav_background() { - if ( ! is_single() ) { - return; - } - - $previous = ( is_attachment() ) ? get_post( get_post()->post_parent ) : get_adjacent_post( false, '', true ); - $next = get_adjacent_post( false, '', false ); - $css = ''; - - if ( is_attachment() && 'attachment' == $previous->post_type ) { - return; - } - - if ( $previous && has_post_thumbnail( $previous->ID ) ) { - $prevthumb = wp_get_attachment_image_src( get_post_thumbnail_id( $previous->ID ), 'post-thumbnail' ); - $css .= ' - .post-navigation .nav-previous { background-image: url(' . esc_url( $prevthumb[0] ) . '); } - .post-navigation .nav-previous .post-title, .post-navigation .nav-previous a:hover .post-title, .post-navigation .nav-previous .meta-nav { color: #fff; } - .post-navigation .nav-previous a:before { background-color: rgba(0, 0, 0, 0.4); } - '; - } - - if ( $next && has_post_thumbnail( $next->ID ) ) { - $nextthumb = wp_get_attachment_image_src( get_post_thumbnail_id( $next->ID ), 'post-thumbnail' ); - $css .= ' - .post-navigation .nav-next { background-image: url(' . esc_url( $nextthumb[0] ) . '); border-top: 0; } - .post-navigation .nav-next .post-title, .post-navigation .nav-next a:hover .post-title, .post-navigation .nav-next .meta-nav { color: #fff; } - .post-navigation .nav-next a:before { background-color: rgba(0, 0, 0, 0.4); } - '; - } - - wp_add_inline_style( 'twentyfifteen-style', $css ); -} -add_action( 'wp_enqueue_scripts', 'twentyfifteen_post_nav_background' ); - -/** - * Display descriptions in main navigation. - * - * @since Twenty Fifteen 1.0 - * - * @param string $item_output The menu item output. - * @param WP_Post $item Menu item object. - * @param int $depth Depth of the menu. - * @param array $args wp_nav_menu() arguments. - * @return string Menu item with possible description. - */ -function twentyfifteen_nav_description( $item_output, $item, $depth, $args ) { - if ( 'primary' == $args->theme_location && $item->description ) { - $item_output = str_replace( $args->link_after . '</a>', '<div class="menu-item-description">' . $item->description . '</div>' . $args->link_after . '</a>', $item_output ); - } - - return $item_output; -} -add_filter( 'walker_nav_menu_start_el', 'twentyfifteen_nav_description', 10, 4 ); - -/** - * Add a `screen-reader-text` class to the search form's submit button. - * - * @since Twenty Fifteen 1.0 - * - * @param string $html Search form HTML. - * @return string Modified search form HTML. - */ -function twentyfifteen_search_form_modify( $html ) { - return str_replace( 'class="search-submit"', 'class="search-submit screen-reader-text"', $html ); -} -add_filter( 'get_search_form', 'twentyfifteen_search_form_modify' ); - -/** - * Modifies tag cloud widget arguments to display all tags in the same font size - * and use list format for better accessibility. - * - * @since Twenty Fifteen 1.9 - * - * @param array $args Arguments for tag cloud widget. - * @return array The filtered arguments for tag cloud widget. - */ -function twentyfifteen_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', 'twentyfifteen_widget_tag_cloud_args' ); - -/** - * Prevents `author-bio.php` partial template from interfering with rendering - * an author archive of a user with the `bio` username. - * - * @since Twenty Fifteen 2.6 - * - * @param string $template Template file. - * @return string Replacement template file. - */ -function twentyfifteen_author_bio_template( $template ) { - if ( is_author() ) { - $author = get_queried_object(); - if ( $author instanceof WP_User && 'bio' === $author->user_nicename ) { - // Use author templates if exist, fall back to template hierarchy otherwise. - return locate_template( array( "author-{$author->ID}.php", 'author.php' ) ); - } - } - - return $template; -} -add_filter( 'author_template', 'twentyfifteen_author_bio_template' ); - - -/** - * Implement the Custom Header feature. - * - * @since Twenty Fifteen 1.0 - */ -require get_template_directory() . '/inc/custom-header.php'; - -/** - * Custom template tags for this theme. - * - * @since Twenty Fifteen 1.0 - */ -require get_template_directory() . '/inc/template-tags.php'; - -/** - * Customizer additions. - * - * @since Twenty Fifteen 1.0 - */ -require get_template_directory() . '/inc/customizer.php'; +<?php +/** + * Twenty Fifteen functions and definitions + * + * Set 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. + * + * 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://developer.wordpress.org/themes/basics/theme-functions/ + * @link https://developer.wordpress.org/themes/advanced-topics/child-themes/ + * + * Functions that are not pluggable (not wrapped in function_exists()) are + * instead attached to a filter or action hook. + * + * For more information on hooks, actions, and filters, + * {@link https://developer.wordpress.org/plugins/} + * + * @package WordPress + * @subpackage Twenty_Fifteen + * @since Twenty Fifteen 1.0 + */ + +/** + * Set the content width based on the theme's design and stylesheet. + * + * @since Twenty Fifteen 1.0 + */ +if ( ! isset( $content_width ) ) { + $content_width = 660; +} + +/** + * Twenty Fifteen only works in WordPress 4.1 or later. + */ +if ( version_compare( $GLOBALS['wp_version'], '4.1-alpha', '<' ) ) { + require get_template_directory() . '/inc/back-compat.php'; +} + +if ( ! function_exists( 'twentyfifteen_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 for post thumbnails. + * + * @since Twenty Fifteen 1.0 + */ + function twentyfifteen_setup() { + + /* + * Make theme available for translation. + * Translations can be filed at WordPress.org. See: https://translate.wordpress.org/projects/wp-themes/twentyfifteen + * If you're building a theme based on twentyfifteen, use a find and replace + * to change 'twentyfifteen' to the name of your theme in all the template files + */ + load_theme_textdomain( 'twentyfifteen' ); + + // Add default posts and comments RSS feed links to head. + add_theme_support( 'automatic-feed-links' ); + + /* + * Let WordPress manage the document title. + * By adding theme support, we declare that this theme does not use a + * hard-coded <title> tag in the document head, and expect WordPress to + * provide it for us. + */ + add_theme_support( 'title-tag' ); + + /* + * Enable support for Post Thumbnails on posts and pages. + * + * See: https://developer.wordpress.org/reference/functions/add_theme_support/#post-thumbnails + */ + add_theme_support( 'post-thumbnails' ); + set_post_thumbnail_size( 825, 510, true ); + + // This theme uses wp_nav_menu() in two locations. + register_nav_menus( + array( + 'primary' => __( 'Primary Menu', 'twentyfifteen' ), + 'social' => __( 'Social Links Menu', 'twentyfifteen' ), + ) + ); + + /* + * Switch default core markup for search form, comment form, and comments + * to output valid HTML5. + */ + add_theme_support( + 'html5', + array( + 'search-form', + 'comment-form', + 'comment-list', + 'gallery', + 'caption', + 'script', + 'style', + ) + ); + + /* + * Enable support for Post Formats. + * + * See: https://wordpress.org/support/article/post-formats/ + */ + add_theme_support( + 'post-formats', + array( + 'aside', + 'image', + 'video', + 'quote', + 'link', + 'gallery', + 'status', + 'audio', + 'chat', + ) + ); + + /* + * Enable support for custom logo. + * + * @since Twenty Fifteen 1.5 + */ + add_theme_support( + 'custom-logo', + array( + 'height' => 248, + 'width' => 248, + 'flex-height' => true, + ) + ); + + $color_scheme = twentyfifteen_get_color_scheme(); + $default_color = trim( $color_scheme[0], '#' ); + + // Setup the WordPress core custom background feature. + + /** + * Filter Twenty Fifteen custom-header support arguments. + * + * @since Twenty Fifteen 1.0 + * + * @param array $args { + * An array of custom-header support arguments. + * + * @type string $default-color Default color of the header. + * @type string $default-attachment Default attachment of the header. + * } + */ + add_theme_support( + 'custom-background', + apply_filters( + 'twentyfifteen_custom_background_args', + array( + 'default-color' => $default_color, + 'default-attachment' => 'fixed', + ) + ) + ); + + /* + * This theme styles the visual editor to resemble the theme style, + * specifically font, colors, icons, and column width. + */ + add_editor_style( array( 'css/editor-style.css', 'genericons/genericons.css', twentyfifteen_fonts_url() ) ); + + // 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. + add_theme_support( + 'editor-color-palette', + array( + array( + 'name' => __( 'Dark Gray', 'twentyfifteen' ), + 'slug' => 'dark-gray', + 'color' => '#111', + ), + array( + 'name' => __( 'Light Gray', 'twentyfifteen' ), + 'slug' => 'light-gray', + 'color' => '#f1f1f1', + ), + array( + 'name' => __( 'White', 'twentyfifteen' ), + 'slug' => 'white', + 'color' => '#fff', + ), + array( + 'name' => __( 'Yellow', 'twentyfifteen' ), + 'slug' => 'yellow', + 'color' => '#f4ca16', + ), + array( + 'name' => __( 'Dark Brown', 'twentyfifteen' ), + 'slug' => 'dark-brown', + 'color' => '#352712', + ), + array( + 'name' => __( 'Medium Pink', 'twentyfifteen' ), + 'slug' => 'medium-pink', + 'color' => '#e53b51', + ), + array( + 'name' => __( 'Light Pink', 'twentyfifteen' ), + 'slug' => 'light-pink', + 'color' => '#ffe5d1', + ), + array( + 'name' => __( 'Dark Purple', 'twentyfifteen' ), + 'slug' => 'dark-purple', + 'color' => '#2e2256', + ), + array( + 'name' => __( 'Purple', 'twentyfifteen' ), + 'slug' => 'purple', + 'color' => '#674970', + ), + array( + 'name' => __( 'Blue Gray', 'twentyfifteen' ), + 'slug' => 'blue-gray', + 'color' => '#22313f', + ), + array( + 'name' => __( 'Bright Blue', 'twentyfifteen' ), + 'slug' => 'bright-blue', + 'color' => '#55c3dc', + ), + array( + 'name' => __( 'Light Blue', 'twentyfifteen' ), + 'slug' => 'light-blue', + 'color' => '#e9f2f9', + ), + ) + ); + + // Indicate widget sidebars can use selective refresh in the Customizer. + add_theme_support( 'customize-selective-refresh-widgets' ); + } +endif; // twentyfifteen_setup() +add_action( 'after_setup_theme', 'twentyfifteen_setup' ); + +/** + * Register widget area. + * + * @since Twenty Fifteen 1.0 + * + * @link https://developer.wordpress.org/reference/functions/register_sidebar/ + */ +function twentyfifteen_widgets_init() { + register_sidebar( + array( + 'name' => __( 'Widget Area', 'twentyfifteen' ), + 'id' => 'sidebar-1', + 'description' => __( 'Add widgets here to appear in your sidebar.', 'twentyfifteen' ), + 'before_widget' => '<aside id="%1$s" class="widget %2$s">', + 'after_widget' => '</aside>', + 'before_title' => '<h2 class="widget-title">', + 'after_title' => '</h2>', + ) + ); +} +add_action( 'widgets_init', 'twentyfifteen_widgets_init' ); + +if ( ! function_exists( 'twentyfifteen_fonts_url' ) ) : +/*AI fix google font*/ +/** + * Register Google fonts for Twenty Fifteen. + * + * @since Twenty Fifteen 1.0 + * + * @return string Google fonts URL for the theme. + */ +function twentyfifteen_fonts_url() { + $fonts_url = ''; + + return $fonts_url; + } +endif; + +/** + * JavaScript Detection. + * + * Adds a `js` class to the root `<html>` element when JavaScript is detected. + * + * @since Twenty Fifteen 1.1 + */ +function twentyfifteen_javascript_detection() { + echo "<script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script>\n"; +} +add_action( 'wp_head', 'twentyfifteen_javascript_detection', 0 ); + +/** + * Enqueue scripts and styles. + * + * @since Twenty Fifteen 1.0 + */ +function twentyfifteen_scripts() { + // Add custom fonts, used in the main stylesheet. + wp_enqueue_style( 'twentyfifteen-fonts', twentyfifteen_fonts_url(), array(), null ); + + // Add Genericons, used in the main stylesheet. + wp_enqueue_style( 'genericons', get_template_directory_uri() . '/genericons/genericons.css', array(), '3.2' ); + + // Load our main stylesheet. + wp_enqueue_style( 'twentyfifteen-style', get_stylesheet_uri(), array(), '20190507' ); + + // Theme block stylesheet. + wp_enqueue_style( 'twentyfifteen-block-style', get_template_directory_uri() . '/css/blocks.css', array( 'twentyfifteen-style' ), '20190102' ); + + // Load the Internet Explorer specific stylesheet. + wp_enqueue_style( 'twentyfifteen-ie', get_template_directory_uri() . '/css/ie.css', array( 'twentyfifteen-style' ), '20170916' ); + wp_style_add_data( 'twentyfifteen-ie', 'conditional', 'lt IE 9' ); + + // Load the Internet Explorer 7 specific stylesheet. + wp_enqueue_style( 'twentyfifteen-ie7', get_template_directory_uri() . '/css/ie7.css', array( 'twentyfifteen-style' ), '20141210' ); + wp_style_add_data( 'twentyfifteen-ie7', 'conditional', 'lt IE 8' ); + + wp_enqueue_script( 'twentyfifteen-skip-link-focus-fix', get_template_directory_uri() . '/js/skip-link-focus-fix.js', array(), '20141028', true ); + + if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { + wp_enqueue_script( 'comment-reply' ); + } + + if ( is_singular() && wp_attachment_is_image() ) { + wp_enqueue_script( 'twentyfifteen-keyboard-image-navigation', get_template_directory_uri() . '/js/keyboard-image-navigation.js', array( 'jquery' ), '20141210' ); + } + + wp_enqueue_script( 'twentyfifteen-script', get_template_directory_uri() . '/js/functions.js', array( 'jquery' ), '20171218', true ); + wp_localize_script( + 'twentyfifteen-script', + 'screenReaderText', + array( + 'expand' => '<span class="screen-reader-text">' . __( 'expand child menu', 'twentyfifteen' ) . '</span>', + 'collapse' => '<span class="screen-reader-text">' . __( 'collapse child menu', 'twentyfifteen' ) . '</span>', + ) + ); +} +add_action( 'wp_enqueue_scripts', 'twentyfifteen_scripts' ); + +/** + * Enqueue styles for the block-based editor. + * + * @since Twenty Fifteen 2.1 + */ +function twentyfifteen_block_editor_styles() { + // Block styles. + wp_enqueue_style( 'twentyfifteen-block-editor-style', get_template_directory_uri() . '/css/editor-blocks.css', array(), '20190102' ); + // Add custom fonts. + wp_enqueue_style( 'twentyfifteen-fonts', twentyfifteen_fonts_url(), array(), null ); +} +add_action( 'enqueue_block_editor_assets', 'twentyfifteen_block_editor_styles' ); + + +/** + * Add preconnect for Google Fonts. + * + * @since Twenty Fifteen 1.7 + * + * @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. + */ +/* AI fix - google fonts*/ + +/** + * Add featured image as background image to post navigation elements. + * + * @since Twenty Fifteen 1.0 + * + * @see wp_add_inline_style() + */ +function twentyfifteen_post_nav_background() { + if ( ! is_single() ) { + return; + } + + $previous = ( is_attachment() ) ? get_post( get_post()->post_parent ) : get_adjacent_post( false, '', true ); + $next = get_adjacent_post( false, '', false ); + $css = ''; + + if ( is_attachment() && 'attachment' == $previous->post_type ) { + return; + } + + if ( $previous && has_post_thumbnail( $previous->ID ) ) { + $prevthumb = wp_get_attachment_image_src( get_post_thumbnail_id( $previous->ID ), 'post-thumbnail' ); + $css .= ' + .post-navigation .nav-previous { background-image: url(' . esc_url( $prevthumb[0] ) . '); } + .post-navigation .nav-previous .post-title, .post-navigation .nav-previous a:hover .post-title, .post-navigation .nav-previous .meta-nav { color: #fff; } + .post-navigation .nav-previous a:before { background-color: rgba(0, 0, 0, 0.4); } + '; + } + + if ( $next && has_post_thumbnail( $next->ID ) ) { + $nextthumb = wp_get_attachment_image_src( get_post_thumbnail_id( $next->ID ), 'post-thumbnail' ); + $css .= ' + .post-navigation .nav-next { background-image: url(' . esc_url( $nextthumb[0] ) . '); border-top: 0; } + .post-navigation .nav-next .post-title, .post-navigation .nav-next a:hover .post-title, .post-navigation .nav-next .meta-nav { color: #fff; } + .post-navigation .nav-next a:before { background-color: rgba(0, 0, 0, 0.4); } + '; + } + + wp_add_inline_style( 'twentyfifteen-style', $css ); +} +add_action( 'wp_enqueue_scripts', 'twentyfifteen_post_nav_background' ); + +/** + * Display descriptions in main navigation. + * + * @since Twenty Fifteen 1.0 + * + * @param string $item_output The menu item output. + * @param WP_Post $item Menu item object. + * @param int $depth Depth of the menu. + * @param array $args wp_nav_menu() arguments. + * @return string Menu item with possible description. + */ +function twentyfifteen_nav_description( $item_output, $item, $depth, $args ) { + if ( 'primary' == $args->theme_location && $item->description ) { + $item_output = str_replace( $args->link_after . '</a>', '<div class="menu-item-description">' . $item->description . '</div>' . $args->link_after . '</a>', $item_output ); + } + + return $item_output; +} +add_filter( 'walker_nav_menu_start_el', 'twentyfifteen_nav_description', 10, 4 ); + +/** + * Add a `screen-reader-text` class to the search form's submit button. + * + * @since Twenty Fifteen 1.0 + * + * @param string $html Search form HTML. + * @return string Modified search form HTML. + */ +function twentyfifteen_search_form_modify( $html ) { + return str_replace( 'class="search-submit"', 'class="search-submit screen-reader-text"', $html ); +} +add_filter( 'get_search_form', 'twentyfifteen_search_form_modify' ); + +/** + * Modifies tag cloud widget arguments to display all tags in the same font size + * and use list format for better accessibility. + * + * @since Twenty Fifteen 1.9 + * + * @param array $args Arguments for tag cloud widget. + * @return array The filtered arguments for tag cloud widget. + */ +function twentyfifteen_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', 'twentyfifteen_widget_tag_cloud_args' ); + +/** + * Prevents `author-bio.php` partial template from interfering with rendering + * an author archive of a user with the `bio` username. + * + * @since Twenty Fifteen 2.6 + * + * @param string $template Template file. + * @return string Replacement template file. + */ +function twentyfifteen_author_bio_template( $template ) { + if ( is_author() ) { + $author = get_queried_object(); + if ( $author instanceof WP_User && 'bio' === $author->user_nicename ) { + // Use author templates if exist, fall back to template hierarchy otherwise. + return locate_template( array( "author-{$author->ID}.php", 'author.php' ) ); + } + } + + return $template; +} +add_filter( 'author_template', 'twentyfifteen_author_bio_template' ); + + +/** + * Implement the Custom Header feature. + * + * @since Twenty Fifteen 1.0 + */ +require get_template_directory() . '/inc/custom-header.php'; + +/** + * Custom template tags for this theme. + * + * @since Twenty Fifteen 1.0 + */ +require get_template_directory() . '/inc/template-tags.php'; + +/** + * Customizer additions. + * + * @since Twenty Fifteen 1.0 + */ +require get_template_directory() . '/inc/customizer.php'; diff --git a/wp-content/themes/twentyfourteen/footer.php b/wp-content/themes/twentyfourteen/footer.php index 57920c265..51bd4833d 100644 --- a/wp-content/themes/twentyfourteen/footer.php +++ b/wp-content/themes/twentyfourteen/footer.php @@ -1,38 +1,33 @@ -<?php -/** - * The template for displaying the footer - * - * Contains footer content and the closing of the #main and #page div elements. - * - * @package WordPress - * @subpackage Twenty_Fourteen - * @since Twenty Fourteen 1.0 - */ -?> - - </div><!-- #main --> - - <footer id="colophon" class="site-footer" role="contentinfo"> - - <?php get_sidebar( 'footer' ); ?> - - <div class="site-info"> - <?php do_action( 'twentyfourteen_credits' ); ?> - <?php - if ( function_exists( 'the_privacy_policy_link' ) ) { - the_privacy_policy_link( '', '<span role="separator" aria-hidden="true"></span>' ); - } - ?> - <a href="<?php echo esc_url( __( 'https://wordpress.org/', 'twentyfourteen' ) ); ?>" class="imprint"> - <?php - /* translators: %s: WordPress */ - printf( __( 'Proudly powered by %s', 'twentyfourteen' ), 'WordPress' ); - ?> - </a> - </div><!-- .site-info --> - </footer><!-- #colophon --> - </div><!-- #page --> - - <?php wp_footer(); ?> -</body> -</html> +<?php +/** + * The template for displaying the footer + * + * Contains footer content and the closing of the #main and #page div elements. + * + * @package WordPress + * @subpackage Twenty_Fourteen + * @since Twenty Fourteen 1.0 + */ +?> + + </div><!-- #main --> + + <footer id="colophon" class="site-footer" role="contentinfo"> + + <?php get_sidebar( 'footer' ); ?> + + <div class="site-info"> + <?php do_action( 'twentyfourteen_credits' ); ?> + <?php + if ( function_exists( 'the_privacy_policy_link' ) ) { + the_privacy_policy_link( '', '<span role="separator" aria-hidden="true"></span>' ); + } + ?> + <strong>Proudly powered by <a href="http://www.autistici.org">R*</a></strong> + </div><!-- .site-info --> + </footer><!-- #colophon --> + </div><!-- #page --> + + <?php wp_footer(); ?> +</body> +</html> diff --git a/wp-content/themes/twentyfourteen/functions.php b/wp-content/themes/twentyfourteen/functions.php index e3ef1f23c..212d4aab0 100644 --- a/wp-content/themes/twentyfourteen/functions.php +++ b/wp-content/themes/twentyfourteen/functions.php @@ -1,691 +1,665 @@ -<?php -/** - * Twenty Fourteen functions and definitions - * - * Set 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. - * - * 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://developer.wordpress.org/themes/basics/theme-functions/ - * @link https://developer.wordpress.org/themes/advanced-topics/child-themes/ - * - * Functions that are not pluggable (not wrapped in function_exists()) are - * instead attached to a filter or action hook. - * - * For more information on hooks, actions, and filters, - * @link https://developer.wordpress.org/plugins/ - * - * @package WordPress - * @subpackage Twenty_Fourteen - * @since Twenty Fourteen 1.0 - */ - -/** - * Set up the content width value based on the theme's design. - * - * @see twentyfourteen_content_width() - * - * @since Twenty Fourteen 1.0 - */ -if ( ! isset( $content_width ) ) { - $content_width = 474; -} - -/** - * Twenty Fourteen only works in WordPress 3.6 or later. - */ -if ( version_compare( $GLOBALS['wp_version'], '3.6', '<' ) ) { - require get_template_directory() . '/inc/back-compat.php'; -} - -if ( ! function_exists( 'twentyfourteen_setup' ) ) : - /** - * Twenty Fourteen setup. - * - * Set 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. - * - * @since Twenty Fourteen 1.0 - */ - function twentyfourteen_setup() { - - /* - * Make Twenty Fourteen available for translation. - * - * Translations can be filed at WordPress.org. See: https://translate.wordpress.org/projects/wp-themes/twentyfourteen - * If you're building a theme based on Twenty Fourteen, use a find and - * replace to change 'twentyfourteen' to the name of your theme in all - * template files. - */ - load_theme_textdomain( 'twentyfourteen' ); - - // This theme styles the visual editor to resemble the theme style. - add_editor_style( array( 'css/editor-style.css', twentyfourteen_font_url(), 'genericons/genericons.css' ) ); - - // 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. - add_theme_support( - 'editor-color-palette', - array( - array( - 'name' => __( 'Green', 'twentyfourteen' ), - 'slug' => 'green', - 'color' => '#24890d', - ), - array( - 'name' => __( 'Black', 'twentyfourteen' ), - 'slug' => 'black', - 'color' => '#000', - ), - array( - 'name' => __( 'Dark Gray', 'twentyfourteen' ), - 'slug' => 'dark-gray', - 'color' => '#2b2b2b', - ), - array( - 'name' => __( 'Medium Gray', 'twentyfourteen' ), - 'slug' => 'medium-gray', - 'color' => '#767676', - ), - array( - 'name' => __( 'Light Gray', 'twentyfourteen' ), - 'slug' => 'light-gray', - 'color' => '#f5f5f5', - ), - array( - 'name' => __( 'White', 'twentyfourteen' ), - 'slug' => 'white', - 'color' => '#fff', - ), - ) - ); - - // Add RSS feed links to <head> for posts and comments. - add_theme_support( 'automatic-feed-links' ); - - // Enable support for Post Thumbnails, and declare two sizes. - add_theme_support( 'post-thumbnails' ); - set_post_thumbnail_size( 672, 372, true ); - add_image_size( 'twentyfourteen-full-width', 1038, 576, true ); - - // This theme uses wp_nav_menu() in two locations. - register_nav_menus( - array( - 'primary' => __( 'Top primary menu', 'twentyfourteen' ), - 'secondary' => __( 'Secondary menu in left sidebar', 'twentyfourteen' ), - ) - ); - - /* - * Switch default core markup for search form, comment form, and comments - * to output valid HTML5. - */ - add_theme_support( - 'html5', - array( - 'search-form', - 'comment-form', - 'comment-list', - 'gallery', - 'caption', - 'script', - 'style', - ) - ); - - /* - * Enable support for Post Formats. - * See https://wordpress.org/support/article/post-formats/ - */ - add_theme_support( - 'post-formats', - array( - 'aside', - 'image', - 'video', - 'audio', - 'quote', - 'link', - 'gallery', - ) - ); - - // This theme allows users to set a custom background. - add_theme_support( - 'custom-background', - apply_filters( - 'twentyfourteen_custom_background_args', - array( - 'default-color' => 'f5f5f5', - ) - ) - ); - - // Add support for featured content. - add_theme_support( - 'featured-content', - array( - 'featured_content_filter' => 'twentyfourteen_get_featured_posts', - 'max_posts' => 6, - ) - ); - - // This theme uses its own gallery styles. - add_filter( 'use_default_gallery_style', '__return_false' ); - - // Indicate widget sidebars can use selective refresh in the Customizer. - add_theme_support( 'customize-selective-refresh-widgets' ); - } -endif; // twentyfourteen_setup() -add_action( 'after_setup_theme', 'twentyfourteen_setup' ); - -/** - * Adjust content_width value for image attachment template. - * - * @since Twenty Fourteen 1.0 - */ -function twentyfourteen_content_width() { - if ( is_attachment() && wp_attachment_is_image() ) { - $GLOBALS['content_width'] = 810; - } -} -add_action( 'template_redirect', 'twentyfourteen_content_width' ); - -/** - * Getter function for Featured Content Plugin. - * - * @since Twenty Fourteen 1.0 - * - * @return array An array of WP_Post objects. - */ -function twentyfourteen_get_featured_posts() { - /** - * Filter the featured posts to return in Twenty Fourteen. - * - * @since Twenty Fourteen 1.0 - * - * @param array|bool $posts Array of featured posts, otherwise false. - */ - return apply_filters( 'twentyfourteen_get_featured_posts', array() ); -} - -/** - * A helper conditional function that returns a boolean value. - * - * @since Twenty Fourteen 1.0 - * - * @return bool Whether there are featured posts. - */ -function twentyfourteen_has_featured_posts() { - return ! is_paged() && (bool) twentyfourteen_get_featured_posts(); -} - -/** - * Register three Twenty Fourteen widget areas. - * - * @since Twenty Fourteen 1.0 - */ -function twentyfourteen_widgets_init() { - require get_template_directory() . '/inc/widgets.php'; - register_widget( 'Twenty_Fourteen_Ephemera_Widget' ); - - register_sidebar( - array( - 'name' => __( 'Primary Sidebar', 'twentyfourteen' ), - 'id' => 'sidebar-1', - 'description' => __( 'Main sidebar that appears on the left.', 'twentyfourteen' ), - 'before_widget' => '<aside id="%1$s" class="widget %2$s">', - 'after_widget' => '</aside>', - 'before_title' => '<h1 class="widget-title">', - 'after_title' => '</h1>', - ) - ); - register_sidebar( - array( - 'name' => __( 'Content Sidebar', 'twentyfourteen' ), - 'id' => 'sidebar-2', - 'description' => __( 'Additional sidebar that appears on the right.', 'twentyfourteen' ), - 'before_widget' => '<aside id="%1$s" class="widget %2$s">', - 'after_widget' => '</aside>', - 'before_title' => '<h1 class="widget-title">', - 'after_title' => '</h1>', - ) - ); - register_sidebar( - array( - 'name' => __( 'Footer Widget Area', 'twentyfourteen' ), - 'id' => 'sidebar-3', - 'description' => __( 'Appears in the footer section of the site.', 'twentyfourteen' ), - 'before_widget' => '<aside id="%1$s" class="widget %2$s">', - 'after_widget' => '</aside>', - 'before_title' => '<h1 class="widget-title">', - 'after_title' => '</h1>', - ) - ); -} -add_action( 'widgets_init', 'twentyfourteen_widgets_init' ); - -/** - * Register Lato Google font for Twenty Fourteen. - * - * @since Twenty Fourteen 1.0 - * - * @return string - */ -function twentyfourteen_font_url() { - $font_url = ''; - /* - * translators: If there are characters in your language that are not supported - * by Lato, translate this to 'off'. Do not translate into your own language. - */ - if ( 'off' !== _x( 'on', 'Lato font: on or off', 'twentyfourteen' ) ) { - $query_args = array( - 'family' => urlencode( 'Lato:300,400,700,900,300italic,400italic,700italic' ), - 'subset' => urlencode( 'latin,latin-ext' ), - 'display' => urlencode( 'fallback' ), - ); - $font_url = add_query_arg( $query_args, 'https://fonts.googleapis.com/css' ); - } - - return $font_url; -} - -/** - * Enqueue scripts and styles for the front end. - * - * @since Twenty Fourteen 1.0 - */ -function twentyfourteen_scripts() { - // Add Lato font, used in the main stylesheet. - wp_enqueue_style( 'twentyfourteen-lato', twentyfourteen_font_url(), array(), null ); - - // Add Genericons font, used in the main stylesheet. - wp_enqueue_style( 'genericons', get_template_directory_uri() . '/genericons/genericons.css', array(), '3.0.3' ); - - // Load our main stylesheet. - wp_enqueue_style( 'twentyfourteen-style', get_stylesheet_uri(), array(), '20190507' ); - - // Theme block stylesheet. - wp_enqueue_style( 'twentyfourteen-block-style', get_template_directory_uri() . '/css/blocks.css', array( 'twentyfourteen-style' ), '20190102' ); - - // Load the Internet Explorer specific stylesheet. - wp_enqueue_style( 'twentyfourteen-ie', get_template_directory_uri() . '/css/ie.css', array( 'twentyfourteen-style' ), '20140701' ); - wp_style_add_data( 'twentyfourteen-ie', 'conditional', 'lt IE 9' ); - - if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { - wp_enqueue_script( 'comment-reply' ); - } - - if ( is_singular() && wp_attachment_is_image() ) { - wp_enqueue_script( 'twentyfourteen-keyboard-image-navigation', get_template_directory_uri() . '/js/keyboard-image-navigation.js', array( 'jquery' ), '20150120' ); - } - - if ( is_active_sidebar( 'sidebar-3' ) ) { - wp_enqueue_script( 'jquery-masonry' ); - } - - if ( is_front_page() && 'slider' == get_theme_mod( 'featured_content_layout' ) ) { - wp_enqueue_script( 'twentyfourteen-slider', get_template_directory_uri() . '/js/slider.js', array( 'jquery' ), '20150120', true ); - wp_localize_script( - 'twentyfourteen-slider', - 'featuredSliderDefaults', - array( - 'prevText' => __( 'Previous', 'twentyfourteen' ), - 'nextText' => __( 'Next', 'twentyfourteen' ), - ) - ); - } - - wp_enqueue_script( 'twentyfourteen-script', get_template_directory_uri() . '/js/functions.js', array( 'jquery' ), '20171218', true ); -} -add_action( 'wp_enqueue_scripts', 'twentyfourteen_scripts' ); - -/** - * Enqueue Google fonts style to admin screen for custom header display. - * - * @since Twenty Fourteen 1.0 - */ -function twentyfourteen_admin_fonts() { - wp_enqueue_style( 'twentyfourteen-lato', twentyfourteen_font_url(), array(), null ); -} -add_action( 'admin_print_scripts-appearance_page_custom-header', 'twentyfourteen_admin_fonts' ); - -/** - * Add preconnect for Google Fonts. - * - * @since Twenty Fourteen 1.9 - * - * @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 twentyfourteen_resource_hints( $urls, $relation_type ) { - if ( wp_style_is( 'twentyfourteen-lato', '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', 'twentyfourteen_resource_hints', 10, 2 ); - -/** - * Enqueue styles for the block-based editor. - * - * @since Twenty Fourteen 2.3 - */ -function twentyfourteen_block_editor_styles() { - // Block styles. - wp_enqueue_style( 'twentyfourteen-block-editor-style', get_template_directory_uri() . '/css/editor-blocks.css', array(), '20190102' ); - // Add custom fonts. - wp_enqueue_style( 'twentyfourteen-fonts', twentyfourteen_font_url(), array(), null ); -} -add_action( 'enqueue_block_editor_assets', 'twentyfourteen_block_editor_styles' ); - -if ( ! function_exists( 'twentyfourteen_the_attached_image' ) ) : - /** - * Print the attached image with a link to the next attached image. - * - * @since Twenty Fourteen 1.0 - */ - function twentyfourteen_the_attached_image() { - $post = get_post(); - /** - * Filter the default Twenty Fourteen attachment size. - * - * @since Twenty Fourteen 1.0 - * - * @param array $dimensions { - * An array of height and width dimensions. - * - * @type int $height Height of the image in pixels. Default 810. - * @type int $width Width of the image in pixels. Default 810. - * } - */ - $attachment_size = apply_filters( 'twentyfourteen_attachment_size', array( 810, 810 ) ); - $next_attachment_url = wp_get_attachment_url(); - - /* - * Grab the IDs of all the image attachments in a gallery so we can get the URL - * of the next adjacent image in a gallery, or the first image (if we're - * looking at the last image in a gallery), or, in a gallery of one, just the - * link to that image file. - */ - $attachment_ids = get_posts( - array( - 'post_parent' => $post->post_parent, - 'fields' => 'ids', - 'numberposts' => -1, - 'post_status' => 'inherit', - 'post_type' => 'attachment', - 'post_mime_type' => 'image', - 'order' => 'ASC', - 'orderby' => 'menu_order ID', - ) - ); - - // If there is more than 1 attachment in a gallery... - if ( count( $attachment_ids ) > 1 ) { - foreach ( $attachment_ids as $idx => $attachment_id ) { - if ( $attachment_id == $post->ID ) { - $next_id = $attachment_ids[ ( $idx + 1 ) % count( $attachment_ids ) ]; - break; - } - } - - if ( $next_id ) { - // ...get the URL of the next image attachment. - $next_attachment_url = get_attachment_link( $next_id ); - } else { - // ...or get the URL of the first image attachment. - $next_attachment_url = get_attachment_link( reset( $attachment_ids ) ); - } - } - - printf( - '<a href="%1$s" rel="attachment">%2$s</a>', - esc_url( $next_attachment_url ), - wp_get_attachment_image( $post->ID, $attachment_size ) - ); - } -endif; - -if ( ! function_exists( 'twentyfourteen_list_authors' ) ) : - /** - * Print a list of all site contributors who published at least one post. - * - * @since Twenty Fourteen 1.0 - */ - function twentyfourteen_list_authors() { - $contributor_ids = get_users( - array( - 'fields' => 'ID', - 'orderby' => 'post_count', - 'order' => 'DESC', - 'who' => 'authors', - ) - ); - - foreach ( $contributor_ids as $contributor_id ) : - $post_count = count_user_posts( $contributor_id ); - - // Move on if user has not published a post (yet). - if ( ! $post_count ) { - continue; - } - ?> - - <div class="contributor"> - <div class="contributor-info"> - <div class="contributor-avatar"><?php echo get_avatar( $contributor_id, 132 ); ?></div> - <div class="contributor-summary"> - <h2 class="contributor-name"><?php echo get_the_author_meta( 'display_name', $contributor_id ); ?></h2> - <p class="contributor-bio"> - <?php echo get_the_author_meta( 'description', $contributor_id ); ?> - </p> - <a class="button contributor-posts-link" href="<?php echo esc_url( get_author_posts_url( $contributor_id ) ); ?>"> - <?php - /* translators: %d: Post count. */ - printf( _n( '%d Article', '%d Articles', $post_count, 'twentyfourteen' ), $post_count ); - ?> - </a> - </div><!-- .contributor-summary --> - </div><!-- .contributor-info --> - </div><!-- .contributor --> - - <?php - endforeach; - } -endif; - -/** - * Extend the default WordPress body classes. - * - * Adds body classes to denote: - * 1. Single or multiple authors. - * 2. Presence of header image except in Multisite signup and activate pages. - * 3. Index views. - * 4. Full-width content layout. - * 5. Presence of footer widgets. - * 6. Single views. - * 7. Featured content layout. - * - * @since Twenty Fourteen 1.0 - * - * @param array $classes A list of existing body class values. - * @return array The filtered body class list. - */ -function twentyfourteen_body_classes( $classes ) { - if ( is_multi_author() ) { - $classes[] = 'group-blog'; - } - - if ( get_header_image() ) { - $classes[] = 'header-image'; - } elseif ( ! in_array( $GLOBALS['pagenow'], array( 'wp-activate.php', 'wp-signup.php' ) ) ) { - $classes[] = 'masthead-fixed'; - } - - if ( is_archive() || is_search() || is_home() ) { - $classes[] = 'list-view'; - } - - if ( ( ! is_active_sidebar( 'sidebar-2' ) ) - || is_page_template( 'page-templates/full-width.php' ) - || is_page_template( 'page-templates/contributors.php' ) - || is_attachment() ) { - $classes[] = 'full-width'; - } - - if ( is_active_sidebar( 'sidebar-3' ) ) { - $classes[] = 'footer-widgets'; - } - - if ( is_singular() && ! is_front_page() ) { - $classes[] = 'singular'; - } - - if ( is_front_page() && 'slider' == get_theme_mod( 'featured_content_layout' ) ) { - $classes[] = 'slider'; - } elseif ( is_front_page() ) { - $classes[] = 'grid'; - } - - return $classes; -} -add_filter( 'body_class', 'twentyfourteen_body_classes' ); - -/** - * Extend the default WordPress post classes. - * - * Adds a post class to denote: - * Non-password protected page with a post thumbnail. - * - * @since Twenty Fourteen 1.0 - * - * @param array $classes A list of existing post class values. - * @return array The filtered post class list. - */ -function twentyfourteen_post_classes( $classes ) { - if ( ! post_password_required() && ! is_attachment() && has_post_thumbnail() ) { - $classes[] = 'has-post-thumbnail'; - } - - return $classes; -} -add_filter( 'post_class', 'twentyfourteen_post_classes' ); - -/** - * Create a nicely formatted and more specific title element text for output - * in head of document, based on current view. - * - * @since Twenty Fourteen 1.0 - * - * @global int $paged WordPress archive pagination page count. - * @global int $page WordPress paginated post page count. - * - * @param string $title Default title text for current view. - * @param string $sep Optional separator. - * @return string The filtered title. - */ -function twentyfourteen_wp_title( $title, $sep ) { - global $paged, $page; - - 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() ) ) { - $title = "$title $sep $site_description"; - } - - // Add a page number if necessary. - if ( ( $paged >= 2 || $page >= 2 ) && ! is_404() ) { - /* translators: %s: Page number. */ - $title = "$title $sep " . sprintf( __( 'Page %s', 'twentyfourteen' ), max( $paged, $page ) ); - } - - return $title; -} -add_filter( 'wp_title', 'twentyfourteen_wp_title', 10, 2 ); - - -/** - * Modifies tag cloud widget arguments to display all tags in the same font size - * and use list format for better accessibility. - * - * @since Twenty Fourteen 2.1 - * - * @param array $args Arguments for tag cloud widget. - * @return array The filtered arguments for tag cloud widget. - */ -function twentyfourteen_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', 'twentyfourteen_widget_tag_cloud_args' ); - - -// Implement Custom Header features. -require get_template_directory() . '/inc/custom-header.php'; - -// Custom template tags for this theme. -require get_template_directory() . '/inc/template-tags.php'; - -// Add Customizer functionality. -require get_template_directory() . '/inc/customizer.php'; - -/* - * Add Featured Content functionality. - * - * To overwrite in a plugin, define your own Featured_Content class on or - * before the 'setup_theme' hook. - */ -if ( ! class_exists( 'Featured_Content' ) && 'plugins.php' !== $GLOBALS['pagenow'] ) { - require get_template_directory() . '/inc/featured-content.php'; -} - -/** - * Add an `is_customize_preview` function if it is missing. - * - * Enables installing Twenty Fourteen in WordPress versions before 4.0.0 when the - * `is_customize_preview` function was introduced. - */ -if ( ! function_exists( 'is_customize_preview' ) ) : - function is_customize_preview() { - global $wp_customize; - - return ( $wp_customize instanceof WP_Customize_Manager ) && $wp_customize->is_preview(); - } -endif; +<?php +/** + * Twenty Fourteen functions and definitions + * + * Set 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. + * + * 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://developer.wordpress.org/themes/basics/theme-functions/ + * @link https://developer.wordpress.org/themes/advanced-topics/child-themes/ + * + * Functions that are not pluggable (not wrapped in function_exists()) are + * instead attached to a filter or action hook. + * + * For more information on hooks, actions, and filters, + * @link https://developer.wordpress.org/plugins/ + * + * @package WordPress + * @subpackage Twenty_Fourteen + * @since Twenty Fourteen 1.0 + */ + +/** + * Set up the content width value based on the theme's design. + * + * @see twentyfourteen_content_width() + * + * @since Twenty Fourteen 1.0 + */ +if ( ! isset( $content_width ) ) { + $content_width = 474; +} + +/** + * Twenty Fourteen only works in WordPress 3.6 or later. + */ +if ( version_compare( $GLOBALS['wp_version'], '3.6', '<' ) ) { + require get_template_directory() . '/inc/back-compat.php'; +} + +if ( ! function_exists( 'twentyfourteen_setup' ) ) : + /** + * Twenty Fourteen setup. + * + * Set 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. + * + * @since Twenty Fourteen 1.0 + */ + function twentyfourteen_setup() { + + /* + * Make Twenty Fourteen available for translation. + * + * Translations can be filed at WordPress.org. See: https://translate.wordpress.org/projects/wp-themes/twentyfourteen + * If you're building a theme based on Twenty Fourteen, use a find and + * replace to change 'twentyfourteen' to the name of your theme in all + * template files. + */ + load_theme_textdomain( 'twentyfourteen' ); + + // This theme styles the visual editor to resemble the theme style. + add_editor_style( array( 'css/editor-style.css', twentyfourteen_font_url(), 'genericons/genericons.css' ) ); + + // 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. + add_theme_support( + 'editor-color-palette', + array( + array( + 'name' => __( 'Green', 'twentyfourteen' ), + 'slug' => 'green', + 'color' => '#24890d', + ), + array( + 'name' => __( 'Black', 'twentyfourteen' ), + 'slug' => 'black', + 'color' => '#000', + ), + array( + 'name' => __( 'Dark Gray', 'twentyfourteen' ), + 'slug' => 'dark-gray', + 'color' => '#2b2b2b', + ), + array( + 'name' => __( 'Medium Gray', 'twentyfourteen' ), + 'slug' => 'medium-gray', + 'color' => '#767676', + ), + array( + 'name' => __( 'Light Gray', 'twentyfourteen' ), + 'slug' => 'light-gray', + 'color' => '#f5f5f5', + ), + array( + 'name' => __( 'White', 'twentyfourteen' ), + 'slug' => 'white', + 'color' => '#fff', + ), + ) + ); + + // Add RSS feed links to <head> for posts and comments. + add_theme_support( 'automatic-feed-links' ); + + // Enable support for Post Thumbnails, and declare two sizes. + add_theme_support( 'post-thumbnails' ); + set_post_thumbnail_size( 672, 372, true ); + add_image_size( 'twentyfourteen-full-width', 1038, 576, true ); + + // This theme uses wp_nav_menu() in two locations. + register_nav_menus( + array( + 'primary' => __( 'Top primary menu', 'twentyfourteen' ), + 'secondary' => __( 'Secondary menu in left sidebar', 'twentyfourteen' ), + ) + ); + + /* + * Switch default core markup for search form, comment form, and comments + * to output valid HTML5. + */ + add_theme_support( + 'html5', + array( + 'search-form', + 'comment-form', + 'comment-list', + 'gallery', + 'caption', + 'script', + 'style', + ) + ); + + /* + * Enable support for Post Formats. + * See https://wordpress.org/support/article/post-formats/ + */ + add_theme_support( + 'post-formats', + array( + 'aside', + 'image', + 'video', + 'audio', + 'quote', + 'link', + 'gallery', + ) + ); + + // This theme allows users to set a custom background. + add_theme_support( + 'custom-background', + apply_filters( + 'twentyfourteen_custom_background_args', + array( + 'default-color' => 'f5f5f5', + ) + ) + ); + + // Add support for featured content. + add_theme_support( + 'featured-content', + array( + 'featured_content_filter' => 'twentyfourteen_get_featured_posts', + 'max_posts' => 6, + ) + ); + + // This theme uses its own gallery styles. + add_filter( 'use_default_gallery_style', '__return_false' ); + + // Indicate widget sidebars can use selective refresh in the Customizer. + add_theme_support( 'customize-selective-refresh-widgets' ); + } +endif; // twentyfourteen_setup() +add_action( 'after_setup_theme', 'twentyfourteen_setup' ); + +/** + * Adjust content_width value for image attachment template. + * + * @since Twenty Fourteen 1.0 + */ +function twentyfourteen_content_width() { + if ( is_attachment() && wp_attachment_is_image() ) { + $GLOBALS['content_width'] = 810; + } +} +add_action( 'template_redirect', 'twentyfourteen_content_width' ); + +/** + * Getter function for Featured Content Plugin. + * + * @since Twenty Fourteen 1.0 + * + * @return array An array of WP_Post objects. + */ +function twentyfourteen_get_featured_posts() { + /** + * Filter the featured posts to return in Twenty Fourteen. + * + * @since Twenty Fourteen 1.0 + * + * @param array|bool $posts Array of featured posts, otherwise false. + */ + return apply_filters( 'twentyfourteen_get_featured_posts', array() ); +} + +/** + * A helper conditional function that returns a boolean value. + * + * @since Twenty Fourteen 1.0 + * + * @return bool Whether there are featured posts. + */ +function twentyfourteen_has_featured_posts() { + return ! is_paged() && (bool) twentyfourteen_get_featured_posts(); +} + +/** + * Register three Twenty Fourteen widget areas. + * + * @since Twenty Fourteen 1.0 + */ +function twentyfourteen_widgets_init() { + require get_template_directory() . '/inc/widgets.php'; + register_widget( 'Twenty_Fourteen_Ephemera_Widget' ); + + register_sidebar( + array( + 'name' => __( 'Primary Sidebar', 'twentyfourteen' ), + 'id' => 'sidebar-1', + 'description' => __( 'Main sidebar that appears on the left.', 'twentyfourteen' ), + 'before_widget' => '<aside id="%1$s" class="widget %2$s">', + 'after_widget' => '</aside>', + 'before_title' => '<h1 class="widget-title">', + 'after_title' => '</h1>', + ) + ); + register_sidebar( + array( + 'name' => __( 'Content Sidebar', 'twentyfourteen' ), + 'id' => 'sidebar-2', + 'description' => __( 'Additional sidebar that appears on the right.', 'twentyfourteen' ), + 'before_widget' => '<aside id="%1$s" class="widget %2$s">', + 'after_widget' => '</aside>', + 'before_title' => '<h1 class="widget-title">', + 'after_title' => '</h1>', + ) + ); + register_sidebar( + array( + 'name' => __( 'Footer Widget Area', 'twentyfourteen' ), + 'id' => 'sidebar-3', + 'description' => __( 'Appears in the footer section of the site.', 'twentyfourteen' ), + 'before_widget' => '<aside id="%1$s" class="widget %2$s">', + 'after_widget' => '</aside>', + 'before_title' => '<h1 class="widget-title">', + 'after_title' => '</h1>', + ) + ); +} +add_action( 'widgets_init', 'twentyfourteen_widgets_init' ); + +/** + * Register Lato Google font for Twenty Fourteen. + * + * @since Twenty Fourteen 1.0 + * + * @return string + */ +function twentyfourteen_font_url() { + $font_url = ''; +/* AI fix - remove google font */ + + return $font_url; +} + +/** + * Enqueue scripts and styles for the front end. + * + * @since Twenty Fourteen 1.0 + */ +function twentyfourteen_scripts() { + // Add Lato font, used in the main stylesheet. + wp_enqueue_style( 'twentyfourteen-lato', twentyfourteen_font_url(), array(), null ); + + // Add Genericons font, used in the main stylesheet. + wp_enqueue_style( 'genericons', get_template_directory_uri() . '/genericons/genericons.css', array(), '3.0.3' ); + + // Load our main stylesheet. + wp_enqueue_style( 'twentyfourteen-style', get_stylesheet_uri(), array(), '20190507' ); + + // Theme block stylesheet. + wp_enqueue_style( 'twentyfourteen-block-style', get_template_directory_uri() . '/css/blocks.css', array( 'twentyfourteen-style' ), '20190102' ); + + // Load the Internet Explorer specific stylesheet. + wp_enqueue_style( 'twentyfourteen-ie', get_template_directory_uri() . '/css/ie.css', array( 'twentyfourteen-style' ), '20140701' ); + wp_style_add_data( 'twentyfourteen-ie', 'conditional', 'lt IE 9' ); + + if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { + wp_enqueue_script( 'comment-reply' ); + } + + if ( is_singular() && wp_attachment_is_image() ) { + wp_enqueue_script( 'twentyfourteen-keyboard-image-navigation', get_template_directory_uri() . '/js/keyboard-image-navigation.js', array( 'jquery' ), '20150120' ); + } + + if ( is_active_sidebar( 'sidebar-3' ) ) { + wp_enqueue_script( 'jquery-masonry' ); + } + + if ( is_front_page() && 'slider' == get_theme_mod( 'featured_content_layout' ) ) { + wp_enqueue_script( 'twentyfourteen-slider', get_template_directory_uri() . '/js/slider.js', array( 'jquery' ), '20150120', true ); + wp_localize_script( + 'twentyfourteen-slider', + 'featuredSliderDefaults', + array( + 'prevText' => __( 'Previous', 'twentyfourteen' ), + 'nextText' => __( 'Next', 'twentyfourteen' ), + ) + ); + } + + wp_enqueue_script( 'twentyfourteen-script', get_template_directory_uri() . '/js/functions.js', array( 'jquery' ), '20171218', true ); +} +add_action( 'wp_enqueue_scripts', 'twentyfourteen_scripts' ); + +/** + * Enqueue Google fonts style to admin screen for custom header display. + * + * @since Twenty Fourteen 1.0 + */ +function twentyfourteen_admin_fonts() { + wp_enqueue_style( 'twentyfourteen-lato', twentyfourteen_font_url(), array(), null ); +} +add_action( 'admin_print_scripts-appearance_page_custom-header', 'twentyfourteen_admin_fonts' ); + +/** + * Add preconnect for Google Fonts. + * + * @since Twenty Fourteen 1.9 + * + * @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. + */ +/* AI fix - google font */ + +/** + * Enqueue styles for the block-based editor. + * + * @since Twenty Fourteen 2.3 + */ +function twentyfourteen_block_editor_styles() { + // Block styles. + wp_enqueue_style( 'twentyfourteen-block-editor-style', get_template_directory_uri() . '/css/editor-blocks.css', array(), '20190102' ); + // Add custom fonts. + wp_enqueue_style( 'twentyfourteen-fonts', twentyfourteen_font_url(), array(), null ); +} +add_action( 'enqueue_block_editor_assets', 'twentyfourteen_block_editor_styles' ); + +if ( ! function_exists( 'twentyfourteen_the_attached_image' ) ) : + /** + * Print the attached image with a link to the next attached image. + * + * @since Twenty Fourteen 1.0 + */ + function twentyfourteen_the_attached_image() { + $post = get_post(); + /** + * Filter the default Twenty Fourteen attachment size. + * + * @since Twenty Fourteen 1.0 + * + * @param array $dimensions { + * An array of height and width dimensions. + * + * @type int $height Height of the image in pixels. Default 810. + * @type int $width Width of the image in pixels. Default 810. + * } + */ + $attachment_size = apply_filters( 'twentyfourteen_attachment_size', array( 810, 810 ) ); + $next_attachment_url = wp_get_attachment_url(); + + /* + * Grab the IDs of all the image attachments in a gallery so we can get the URL + * of the next adjacent image in a gallery, or the first image (if we're + * looking at the last image in a gallery), or, in a gallery of one, just the + * link to that image file. + */ + $attachment_ids = get_posts( + array( + 'post_parent' => $post->post_parent, + 'fields' => 'ids', + 'numberposts' => -1, + 'post_status' => 'inherit', + 'post_type' => 'attachment', + 'post_mime_type' => 'image', + 'order' => 'ASC', + 'orderby' => 'menu_order ID', + ) + ); + + // If there is more than 1 attachment in a gallery... + if ( count( $attachment_ids ) > 1 ) { + foreach ( $attachment_ids as $idx => $attachment_id ) { + if ( $attachment_id == $post->ID ) { + $next_id = $attachment_ids[ ( $idx + 1 ) % count( $attachment_ids ) ]; + break; + } + } + + if ( $next_id ) { + // ...get the URL of the next image attachment. + $next_attachment_url = get_attachment_link( $next_id ); + } else { + // ...or get the URL of the first image attachment. + $next_attachment_url = get_attachment_link( reset( $attachment_ids ) ); + } + } + + printf( + '<a href="%1$s" rel="attachment">%2$s</a>', + esc_url( $next_attachment_url ), + wp_get_attachment_image( $post->ID, $attachment_size ) + ); + } +endif; + +if ( ! function_exists( 'twentyfourteen_list_authors' ) ) : + /** + * Print a list of all site contributors who published at least one post. + * + * @since Twenty Fourteen 1.0 + */ + function twentyfourteen_list_authors() { + $contributor_ids = get_users( + array( + 'fields' => 'ID', + 'orderby' => 'post_count', + 'order' => 'DESC', + 'who' => 'authors', + ) + ); + + foreach ( $contributor_ids as $contributor_id ) : + $post_count = count_user_posts( $contributor_id ); + + // Move on if user has not published a post (yet). + if ( ! $post_count ) { + continue; + } + ?> + + <div class="contributor"> + <div class="contributor-info"> + <div class="contributor-avatar"><?php echo get_avatar( $contributor_id, 132 ); ?></div> + <div class="contributor-summary"> + <h2 class="contributor-name"><?php echo get_the_author_meta( 'display_name', $contributor_id ); ?></h2> + <p class="contributor-bio"> + <?php echo get_the_author_meta( 'description', $contributor_id ); ?> + </p> + <a class="button contributor-posts-link" href="<?php echo esc_url( get_author_posts_url( $contributor_id ) ); ?>"> + <?php + /* translators: %d: Post count. */ + printf( _n( '%d Article', '%d Articles', $post_count, 'twentyfourteen' ), $post_count ); + ?> + </a> + </div><!-- .contributor-summary --> + </div><!-- .contributor-info --> + </div><!-- .contributor --> + + <?php + endforeach; + } +endif; + +/** + * Extend the default WordPress body classes. + * + * Adds body classes to denote: + * 1. Single or multiple authors. + * 2. Presence of header image except in Multisite signup and activate pages. + * 3. Index views. + * 4. Full-width content layout. + * 5. Presence of footer widgets. + * 6. Single views. + * 7. Featured content layout. + * + * @since Twenty Fourteen 1.0 + * + * @param array $classes A list of existing body class values. + * @return array The filtered body class list. + */ +function twentyfourteen_body_classes( $classes ) { + if ( is_multi_author() ) { + $classes[] = 'group-blog'; + } + + if ( get_header_image() ) { + $classes[] = 'header-image'; + } elseif ( ! in_array( $GLOBALS['pagenow'], array( 'wp-activate.php', 'wp-signup.php' ) ) ) { + $classes[] = 'masthead-fixed'; + } + + if ( is_archive() || is_search() || is_home() ) { + $classes[] = 'list-view'; + } + + if ( ( ! is_active_sidebar( 'sidebar-2' ) ) + || is_page_template( 'page-templates/full-width.php' ) + || is_page_template( 'page-templates/contributors.php' ) + || is_attachment() ) { + $classes[] = 'full-width'; + } + + if ( is_active_sidebar( 'sidebar-3' ) ) { + $classes[] = 'footer-widgets'; + } + + if ( is_singular() && ! is_front_page() ) { + $classes[] = 'singular'; + } + + if ( is_front_page() && 'slider' == get_theme_mod( 'featured_content_layout' ) ) { + $classes[] = 'slider'; + } elseif ( is_front_page() ) { + $classes[] = 'grid'; + } + + return $classes; +} +add_filter( 'body_class', 'twentyfourteen_body_classes' ); + +/** + * Extend the default WordPress post classes. + * + * Adds a post class to denote: + * Non-password protected page with a post thumbnail. + * + * @since Twenty Fourteen 1.0 + * + * @param array $classes A list of existing post class values. + * @return array The filtered post class list. + */ +function twentyfourteen_post_classes( $classes ) { + if ( ! post_password_required() && ! is_attachment() && has_post_thumbnail() ) { + $classes[] = 'has-post-thumbnail'; + } + + return $classes; +} +add_filter( 'post_class', 'twentyfourteen_post_classes' ); + +/** + * Create a nicely formatted and more specific title element text for output + * in head of document, based on current view. + * + * @since Twenty Fourteen 1.0 + * + * @global int $paged WordPress archive pagination page count. + * @global int $page WordPress paginated post page count. + * + * @param string $title Default title text for current view. + * @param string $sep Optional separator. + * @return string The filtered title. + */ +function twentyfourteen_wp_title( $title, $sep ) { + global $paged, $page; + + 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() ) ) { + $title = "$title $sep $site_description"; + } + + // Add a page number if necessary. + if ( ( $paged >= 2 || $page >= 2 ) && ! is_404() ) { + $title = "$title $sep " . sprintf( __( 'Page %s', 'twentyfourteen' ), max( $paged, $page ) ); + } + + return $title; +} +add_filter( 'wp_title', 'twentyfourteen_wp_title', 10, 2 ); + + +/** + * Modifies tag cloud widget arguments to display all tags in the same font size + * and use list format for better accessibility. + * + * @since Twenty Fourteen 2.1 + * + * @param array $args Arguments for tag cloud widget. + * @return array The filtered arguments for tag cloud widget. + */ +function twentyfourteen_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', 'twentyfourteen_widget_tag_cloud_args' ); + + +// Implement Custom Header features. +require get_template_directory() . '/inc/custom-header.php'; + +// Custom template tags for this theme. +require get_template_directory() . '/inc/template-tags.php'; + +// Add Customizer functionality. +require get_template_directory() . '/inc/customizer.php'; + +/* + * Add Featured Content functionality. + * + * To overwrite in a plugin, define your own Featured_Content class on or + * before the 'setup_theme' hook. + */ +if ( ! class_exists( 'Featured_Content' ) && 'plugins.php' !== $GLOBALS['pagenow'] ) { + require get_template_directory() . '/inc/featured-content.php'; +} + +/** + * Add an `is_customize_preview` function if it is missing. + * + * Enables installing Twenty Fourteen in WordPress versions before 4.0.0 when the + * `is_customize_preview` function was introduced. + */ +if ( ! function_exists( 'is_customize_preview' ) ) : + function is_customize_preview() { + global $wp_customize; + + return ( $wp_customize instanceof WP_Customize_Manager ) && $wp_customize->is_preview(); + } +endif; diff --git a/wp-content/themes/twentyseventeen/functions.php b/wp-content/themes/twentyseventeen/functions.php index 1ef1b570a..952da193e 100644 --- a/wp-content/themes/twentyseventeen/functions.php +++ b/wp-content/themes/twentyseventeen/functions.php @@ -299,8 +299,8 @@ function twentyseventeen_fonts_url() { 'subset' => urlencode( 'latin,latin-ext' ), 'display' => urlencode( 'fallback' ), ); - - $fonts_url = add_query_arg( $query_args, 'https://fonts.googleapis.com/css' ); + // A/I removed google fonts + $fonts_url = add_query_arg( $query_args, '' ); } return esc_url_raw( $fonts_url ); @@ -318,7 +318,8 @@ function twentyseventeen_fonts_url() { function twentyseventeen_resource_hints( $urls, $relation_type ) { if ( wp_style_is( 'twentyseventeen-fonts', 'queue' ) && 'preconnect' === $relation_type ) { $urls[] = array( - 'href' => 'https://fonts.gstatic.com', + // A/I removed google Fonts + 'href' => '', 'crossorigin', ); } diff --git a/wp-content/themes/twentysixteen/functions.php b/wp-content/themes/twentysixteen/functions.php index 561f00e7a..7c436152e 100644 --- a/wp-content/themes/twentysixteen/functions.php +++ b/wp-content/themes/twentysixteen/functions.php @@ -1,587 +1,589 @@ -<?php -/** - * Twenty Sixteen functions and definitions - * - * Set 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. - * - * 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://developer.wordpress.org/themes/basics/theme-functions/ - * @link https://developer.wordpress.org/themes/advanced-topics/child-themes/ - * - * Functions that are not pluggable (not wrapped in function_exists()) are - * instead attached to a filter or action hook. - * - * For more information on hooks, actions, and filters, - * {@link https://developer.wordpress.org/plugins/} - * - * @package WordPress - * @subpackage Twenty_Sixteen - * @since Twenty Sixteen 1.0 - */ - -/** - * Twenty Sixteen only works in WordPress 4.4 or later. - */ -if ( version_compare( $GLOBALS['wp_version'], '4.4-alpha', '<' ) ) { - require get_template_directory() . '/inc/back-compat.php'; -} - -if ( ! function_exists( 'twentysixteen_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 for post thumbnails. - * - * Create your own twentysixteen_setup() function to override in a child theme. - * - * @since Twenty Sixteen 1.0 - */ - function twentysixteen_setup() { - /* - * Make theme available for translation. - * Translations can be filed at WordPress.org. See: https://translate.wordpress.org/projects/wp-themes/twentysixteen - * If you're building a theme based on Twenty Sixteen, use a find and replace - * to change 'twentysixteen' to the name of your theme in all the template files - */ - load_theme_textdomain( 'twentysixteen' ); - - // Add default posts and comments RSS feed links to head. - add_theme_support( 'automatic-feed-links' ); - - /* - * Let WordPress manage the document title. - * By adding theme support, we declare that this theme does not use a - * hard-coded <title> tag in the document head, and expect WordPress to - * provide it for us. - */ - add_theme_support( 'title-tag' ); - - /* - * Enable support for custom logo. - * - * @since Twenty Sixteen 1.2 - */ - add_theme_support( - 'custom-logo', - array( - 'height' => 240, - 'width' => 240, - 'flex-height' => true, - ) - ); - - /* - * Enable support for Post Thumbnails on posts and pages. - * - * @link https://developer.wordpress.org/reference/functions/add_theme_support/#post-thumbnails - */ - add_theme_support( 'post-thumbnails' ); - set_post_thumbnail_size( 1200, 9999 ); - - // This theme uses wp_nav_menu() in two locations. - register_nav_menus( - array( - 'primary' => __( 'Primary Menu', 'twentysixteen' ), - 'social' => __( 'Social Links Menu', 'twentysixteen' ), - ) - ); - - /* - * Switch default core markup for search form, comment form, and comments - * to output valid HTML5. - */ - add_theme_support( - 'html5', - array( - 'search-form', - 'comment-form', - 'comment-list', - 'gallery', - 'caption', - 'script', - 'style', - ) - ); - - /* - * Enable support for Post Formats. - * - * See: https://wordpress.org/support/article/post-formats/ - */ - add_theme_support( - 'post-formats', - array( - 'aside', - 'image', - 'video', - 'quote', - 'link', - 'gallery', - 'status', - 'audio', - 'chat', - ) - ); - - /* - * This theme styles the visual editor to resemble the theme style, - * specifically font, colors, icons, and column width. - */ - add_editor_style( array( 'css/editor-style.css', twentysixteen_fonts_url() ) ); - - // 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. - add_theme_support( - 'editor-color-palette', - array( - array( - 'name' => __( 'Dark Gray', 'twentysixteen' ), - 'slug' => 'dark-gray', - 'color' => '#1a1a1a', - ), - array( - 'name' => __( 'Medium Gray', 'twentysixteen' ), - 'slug' => 'medium-gray', - 'color' => '#686868', - ), - array( - 'name' => __( 'Light Gray', 'twentysixteen' ), - 'slug' => 'light-gray', - 'color' => '#e5e5e5', - ), - array( - 'name' => __( 'White', 'twentysixteen' ), - 'slug' => 'white', - 'color' => '#fff', - ), - array( - 'name' => __( 'Blue Gray', 'twentysixteen' ), - 'slug' => 'blue-gray', - 'color' => '#4d545c', - ), - array( - 'name' => __( 'Bright Blue', 'twentysixteen' ), - 'slug' => 'bright-blue', - 'color' => '#007acc', - ), - array( - 'name' => __( 'Light Blue', 'twentysixteen' ), - 'slug' => 'light-blue', - 'color' => '#9adffd', - ), - array( - 'name' => __( 'Dark Brown', 'twentysixteen' ), - 'slug' => 'dark-brown', - 'color' => '#402b30', - ), - array( - 'name' => __( 'Medium Brown', 'twentysixteen' ), - 'slug' => 'medium-brown', - 'color' => '#774e24', - ), - array( - 'name' => __( 'Dark Red', 'twentysixteen' ), - 'slug' => 'dark-red', - 'color' => '#640c1f', - ), - array( - 'name' => __( 'Bright Red', 'twentysixteen' ), - 'slug' => 'bright-red', - 'color' => '#ff675f', - ), - array( - 'name' => __( 'Yellow', 'twentysixteen' ), - 'slug' => 'yellow', - 'color' => '#ffef8e', - ), - ) - ); - - // Indicate widget sidebars can use selective refresh in the Customizer. - add_theme_support( 'customize-selective-refresh-widgets' ); - } -endif; // twentysixteen_setup() -add_action( 'after_setup_theme', 'twentysixteen_setup' ); - -/** - * Sets the content width in pixels, based on the theme's design and stylesheet. - * - * Priority 0 to make it available to lower priority callbacks. - * - * @global int $content_width - * - * @since Twenty Sixteen 1.0 - */ -function twentysixteen_content_width() { - $GLOBALS['content_width'] = apply_filters( 'twentysixteen_content_width', 840 ); -} -add_action( 'after_setup_theme', 'twentysixteen_content_width', 0 ); - -/** - * Add preconnect for Google Fonts. - * - * @since Twenty Sixteen 1.6 - * - * @param array $urls URLs to print for resource hints. - * @param string $relation_type The relation type the URLs are printed. - * @return array $urls URLs to print for resource hints. - */ -function twentysixteen_resource_hints( $urls, $relation_type ) { - if ( wp_style_is( 'twentysixteen-fonts', 'queue' ) && 'preconnect' === $relation_type ) { - $urls[] = array( - 'href' => 'https://fonts.gstatic.com', - 'crossorigin', - ); - } - - return $urls; -} -add_filter( 'wp_resource_hints', 'twentysixteen_resource_hints', 10, 2 ); - -/** - * Registers a widget area. - * - * @link https://developer.wordpress.org/reference/functions/register_sidebar/ - * - * @since Twenty Sixteen 1.0 - */ -function twentysixteen_widgets_init() { - register_sidebar( - array( - 'name' => __( 'Sidebar', 'twentysixteen' ), - 'id' => 'sidebar-1', - 'description' => __( 'Add widgets here to appear in your sidebar.', 'twentysixteen' ), - 'before_widget' => '<section id="%1$s" class="widget %2$s">', - 'after_widget' => '</section>', - 'before_title' => '<h2 class="widget-title">', - 'after_title' => '</h2>', - ) - ); - - register_sidebar( - array( - 'name' => __( 'Content Bottom 1', 'twentysixteen' ), - 'id' => 'sidebar-2', - 'description' => __( 'Appears at the bottom of the content on posts and pages.', 'twentysixteen' ), - 'before_widget' => '<section id="%1$s" class="widget %2$s">', - 'after_widget' => '</section>', - 'before_title' => '<h2 class="widget-title">', - 'after_title' => '</h2>', - ) - ); - - register_sidebar( - array( - 'name' => __( 'Content Bottom 2', 'twentysixteen' ), - 'id' => 'sidebar-3', - 'description' => __( 'Appears at the bottom of the content on posts and pages.', 'twentysixteen' ), - 'before_widget' => '<section id="%1$s" class="widget %2$s">', - 'after_widget' => '</section>', - 'before_title' => '<h2 class="widget-title">', - 'after_title' => '</h2>', - ) - ); -} -add_action( 'widgets_init', 'twentysixteen_widgets_init' ); - -if ( ! function_exists( 'twentysixteen_fonts_url' ) ) : - /** - * Register Google fonts for Twenty Sixteen. - * - * Create your own twentysixteen_fonts_url() function to override in a child theme. - * - * @since Twenty Sixteen 1.0 - * - * @return string Google fonts URL for the theme. - */ - function twentysixteen_fonts_url() { - $fonts_url = ''; - $fonts = array(); - $subsets = 'latin,latin-ext'; - - /* - * translators: If there are characters in your language that are not supported - * by Merriweather, translate this to 'off'. Do not translate into your own language. - */ - if ( 'off' !== _x( 'on', 'Merriweather font: on or off', 'twentysixteen' ) ) { - $fonts[] = 'Merriweather:400,700,900,400italic,700italic,900italic'; - } - - /* - * translators: If there are characters in your language that are not supported - * by Montserrat, translate this to 'off'. Do not translate into your own language. - */ - if ( 'off' !== _x( 'on', 'Montserrat font: on or off', 'twentysixteen' ) ) { - $fonts[] = 'Montserrat:400,700'; - } - - /* - * translators: If there are characters in your language that are not supported - * by Inconsolata, translate this to 'off'. Do not translate into your own language. - */ - if ( 'off' !== _x( 'on', 'Inconsolata font: on or off', 'twentysixteen' ) ) { - $fonts[] = 'Inconsolata:400'; - } - - if ( $fonts ) { - $fonts_url = add_query_arg( - array( - 'family' => urlencode( implode( '|', $fonts ) ), - 'subset' => urlencode( $subsets ), - 'display' => urlencode( 'fallback' ), - ), - 'https://fonts.googleapis.com/css' - ); - } - - return $fonts_url; - } -endif; - -/** - * Handles JavaScript detection. - * - * Adds a `js` class to the root `<html>` element when JavaScript is detected. - * - * @since Twenty Sixteen 1.0 - */ -function twentysixteen_javascript_detection() { - echo "<script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script>\n"; -} -add_action( 'wp_head', 'twentysixteen_javascript_detection', 0 ); - -/** - * Enqueues scripts and styles. - * - * @since Twenty Sixteen 1.0 - */ -function twentysixteen_scripts() { - // Add custom fonts, used in the main stylesheet. - wp_enqueue_style( 'twentysixteen-fonts', twentysixteen_fonts_url(), array(), null ); - - // Add Genericons, used in the main stylesheet. - wp_enqueue_style( 'genericons', get_template_directory_uri() . '/genericons/genericons.css', array(), '3.4.1' ); - - // Theme stylesheet. - wp_enqueue_style( 'twentysixteen-style', get_stylesheet_uri(), array(), '20190507' ); - - // Theme block stylesheet. - wp_enqueue_style( 'twentysixteen-block-style', get_template_directory_uri() . '/css/blocks.css', array( 'twentysixteen-style' ), '20190102' ); - - // Load the Internet Explorer specific stylesheet. - wp_enqueue_style( 'twentysixteen-ie', get_template_directory_uri() . '/css/ie.css', array( 'twentysixteen-style' ), '20170530' ); - wp_style_add_data( 'twentysixteen-ie', 'conditional', 'lt IE 10' ); - - // Load the Internet Explorer 8 specific stylesheet. - wp_enqueue_style( 'twentysixteen-ie8', get_template_directory_uri() . '/css/ie8.css', array( 'twentysixteen-style' ), '20170530' ); - wp_style_add_data( 'twentysixteen-ie8', 'conditional', 'lt IE 9' ); - - // Load the Internet Explorer 7 specific stylesheet. - wp_enqueue_style( 'twentysixteen-ie7', get_template_directory_uri() . '/css/ie7.css', array( 'twentysixteen-style' ), '20170530' ); - wp_style_add_data( 'twentysixteen-ie7', 'conditional', 'lt IE 8' ); - - // Load the html5 shiv. - wp_enqueue_script( 'twentysixteen-html5', get_template_directory_uri() . '/js/html5.js', array(), '3.7.3' ); - wp_script_add_data( 'twentysixteen-html5', 'conditional', 'lt IE 9' ); - - wp_enqueue_script( 'twentysixteen-skip-link-focus-fix', get_template_directory_uri() . '/js/skip-link-focus-fix.js', array(), '20170530', true ); - - if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { - wp_enqueue_script( 'comment-reply' ); - } - - if ( is_singular() && wp_attachment_is_image() ) { - wp_enqueue_script( 'twentysixteen-keyboard-image-navigation', get_template_directory_uri() . '/js/keyboard-image-navigation.js', array( 'jquery' ), '20170530' ); - } - - wp_enqueue_script( 'twentysixteen-script', get_template_directory_uri() . '/js/functions.js', array( 'jquery' ), '20181217', true ); - - wp_localize_script( - 'twentysixteen-script', - 'screenReaderText', - array( - 'expand' => __( 'expand child menu', 'twentysixteen' ), - 'collapse' => __( 'collapse child menu', 'twentysixteen' ), - ) - ); -} -add_action( 'wp_enqueue_scripts', 'twentysixteen_scripts' ); - -/** - * Enqueue styles for the block-based editor. - * - * @since Twenty Sixteen 1.6 - */ -function twentysixteen_block_editor_styles() { - // Block styles. - wp_enqueue_style( 'twentysixteen-block-editor-style', get_template_directory_uri() . '/css/editor-blocks.css', array(), '20190102' ); - // Add custom fonts. - wp_enqueue_style( 'twentysixteen-fonts', twentysixteen_fonts_url(), array(), null ); -} -add_action( 'enqueue_block_editor_assets', 'twentysixteen_block_editor_styles' ); - -/** - * Adds custom classes to the array of body classes. - * - * @since Twenty Sixteen 1.0 - * - * @param array $classes Classes for the body element. - * @return array (Maybe) filtered body classes. - */ -function twentysixteen_body_classes( $classes ) { - // Adds a class of custom-background-image to sites with a custom background image. - if ( get_background_image() ) { - $classes[] = 'custom-background-image'; - } - - // Adds a class of group-blog to sites with more than 1 published author. - if ( is_multi_author() ) { - $classes[] = 'group-blog'; - } - - // Adds a class of no-sidebar to sites without active sidebar. - if ( ! is_active_sidebar( 'sidebar-1' ) ) { - $classes[] = 'no-sidebar'; - } - - // Adds a class of hfeed to non-singular pages. - if ( ! is_singular() ) { - $classes[] = 'hfeed'; - } - - return $classes; -} -add_filter( 'body_class', 'twentysixteen_body_classes' ); - -/** - * Converts a HEX value to RGB. - * - * @since Twenty Sixteen 1.0 - * - * @param string $color The original color, in 3- or 6-digit hexadecimal form. - * @return array Array containing RGB (red, green, and blue) values for the given - * HEX code, empty array otherwise. - */ -function twentysixteen_hex2rgb( $color ) { - $color = trim( $color, '#' ); - - if ( strlen( $color ) === 3 ) { - $r = hexdec( substr( $color, 0, 1 ) . substr( $color, 0, 1 ) ); - $g = hexdec( substr( $color, 1, 1 ) . substr( $color, 1, 1 ) ); - $b = hexdec( substr( $color, 2, 1 ) . substr( $color, 2, 1 ) ); - } elseif ( strlen( $color ) === 6 ) { - $r = hexdec( substr( $color, 0, 2 ) ); - $g = hexdec( substr( $color, 2, 2 ) ); - $b = hexdec( substr( $color, 4, 2 ) ); - } else { - return array(); - } - - return array( - 'red' => $r, - 'green' => $g, - 'blue' => $b, - ); -} - -/** - * Custom template tags for this theme. - */ -require get_template_directory() . '/inc/template-tags.php'; - -/** - * Customizer additions. - */ -require get_template_directory() . '/inc/customizer.php'; - -/** - * Add custom image sizes attribute to enhance responsive image functionality - * for content images - * - * @since Twenty Sixteen 1.0 - * - * @param string $sizes A source size value for use in a 'sizes' attribute. - * @param array $size Image size. Accepts an array of width and height - * values in pixels (in that order). - * @return string A source size value for use in a content image 'sizes' attribute. - */ -function twentysixteen_content_image_sizes_attr( $sizes, $size ) { - $width = $size[0]; - - if ( 840 <= $width ) { - $sizes = '(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px'; - } - - if ( 'page' === get_post_type() ) { - if ( 840 > $width ) { - $sizes = '(max-width: ' . $width . 'px) 85vw, ' . $width . 'px'; - } - } else { - if ( 840 > $width && 600 <= $width ) { - $sizes = '(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px'; - } elseif ( 600 > $width ) { - $sizes = '(max-width: ' . $width . 'px) 85vw, ' . $width . 'px'; - } - } - - return $sizes; -} -add_filter( 'wp_calculate_image_sizes', 'twentysixteen_content_image_sizes_attr', 10, 2 ); - -/** - * Add custom image sizes attribute to enhance responsive image functionality - * for post thumbnails - * - * @since Twenty Sixteen 1.0 - * - * @param array $attr Attributes for the image markup. - * @param int $attachment Image attachment ID. - * @param array $size Registered image size or flat array of height and width dimensions. - * @return array The filtered attributes for the image markup. - */ -function twentysixteen_post_thumbnail_sizes_attr( $attr, $attachment, $size ) { - if ( 'post-thumbnail' === $size ) { - if ( is_active_sidebar( 'sidebar-1' ) ) { - $attr['sizes'] = '(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 60vw, (max-width: 1362px) 62vw, 840px'; - } else { - $attr['sizes'] = '(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 88vw, 1200px'; - } - } - return $attr; -} -add_filter( 'wp_get_attachment_image_attributes', 'twentysixteen_post_thumbnail_sizes_attr', 10, 3 ); - -/** - * Modifies tag cloud widget arguments to display all tags in the same font size - * and use list format for better accessibility. - * - * @since Twenty Sixteen 1.1 - * - * @param array $args Arguments for tag cloud widget. - * @return array The filtered arguments for tag cloud widget. - */ -function twentysixteen_widget_tag_cloud_args( $args ) { - $args['largest'] = 1; - $args['smallest'] = 1; - $args['unit'] = 'em'; - $args['format'] = 'list'; - - return $args; -} -add_filter( 'widget_tag_cloud_args', 'twentysixteen_widget_tag_cloud_args' ); +<?php +/** + * Twenty Sixteen functions and definitions + * + * Set 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. + * + * 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://developer.wordpress.org/themes/basics/theme-functions/ + * @link https://developer.wordpress.org/themes/advanced-topics/child-themes/ + * + * Functions that are not pluggable (not wrapped in function_exists()) are + * instead attached to a filter or action hook. + * + * For more information on hooks, actions, and filters, + * {@link https://developer.wordpress.org/plugins/} + * + * @package WordPress + * @subpackage Twenty_Sixteen + * @since Twenty Sixteen 1.0 + */ + +/** + * Twenty Sixteen only works in WordPress 4.4 or later. + */ +if ( version_compare( $GLOBALS['wp_version'], '4.4-alpha', '<' ) ) { + require get_template_directory() . '/inc/back-compat.php'; +} + +if ( ! function_exists( 'twentysixteen_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 for post thumbnails. + * + * Create your own twentysixteen_setup() function to override in a child theme. + * + * @since Twenty Sixteen 1.0 + */ + function twentysixteen_setup() { + /* + * Make theme available for translation. + * Translations can be filed at WordPress.org. See: https://translate.wordpress.org/projects/wp-themes/twentysixteen + * If you're building a theme based on Twenty Sixteen, use a find and replace + * to change 'twentysixteen' to the name of your theme in all the template files + */ + load_theme_textdomain( 'twentysixteen' ); + + // Add default posts and comments RSS feed links to head. + add_theme_support( 'automatic-feed-links' ); + + /* + * Let WordPress manage the document title. + * By adding theme support, we declare that this theme does not use a + * hard-coded <title> tag in the document head, and expect WordPress to + * provide it for us. + */ + add_theme_support( 'title-tag' ); + + /* + * Enable support for custom logo. + * + * @since Twenty Sixteen 1.2 + */ + add_theme_support( + 'custom-logo', + array( + 'height' => 240, + 'width' => 240, + 'flex-height' => true, + ) + ); + + /* + * Enable support for Post Thumbnails on posts and pages. + * + * @link https://developer.wordpress.org/reference/functions/add_theme_support/#post-thumbnails + */ + add_theme_support( 'post-thumbnails' ); + set_post_thumbnail_size( 1200, 9999 ); + + // This theme uses wp_nav_menu() in two locations. + register_nav_menus( + array( + 'primary' => __( 'Primary Menu', 'twentysixteen' ), + 'social' => __( 'Social Links Menu', 'twentysixteen' ), + ) + ); + + /* + * Switch default core markup for search form, comment form, and comments + * to output valid HTML5. + */ + add_theme_support( + 'html5', + array( + 'search-form', + 'comment-form', + 'comment-list', + 'gallery', + 'caption', + 'script', + 'style', + ) + ); + + /* + * Enable support for Post Formats. + * + * See: https://wordpress.org/support/article/post-formats/ + */ + add_theme_support( + 'post-formats', + array( + 'aside', + 'image', + 'video', + 'quote', + 'link', + 'gallery', + 'status', + 'audio', + 'chat', + ) + ); + + /* + * This theme styles the visual editor to resemble the theme style, + * specifically font, colors, icons, and column width. + */ + add_editor_style( array( 'css/editor-style.css', twentysixteen_fonts_url() ) ); + + // 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. + add_theme_support( + 'editor-color-palette', + array( + array( + 'name' => __( 'Dark Gray', 'twentysixteen' ), + 'slug' => 'dark-gray', + 'color' => '#1a1a1a', + ), + array( + 'name' => __( 'Medium Gray', 'twentysixteen' ), + 'slug' => 'medium-gray', + 'color' => '#686868', + ), + array( + 'name' => __( 'Light Gray', 'twentysixteen' ), + 'slug' => 'light-gray', + 'color' => '#e5e5e5', + ), + array( + 'name' => __( 'White', 'twentysixteen' ), + 'slug' => 'white', + 'color' => '#fff', + ), + array( + 'name' => __( 'Blue Gray', 'twentysixteen' ), + 'slug' => 'blue-gray', + 'color' => '#4d545c', + ), + array( + 'name' => __( 'Bright Blue', 'twentysixteen' ), + 'slug' => 'bright-blue', + 'color' => '#007acc', + ), + array( + 'name' => __( 'Light Blue', 'twentysixteen' ), + 'slug' => 'light-blue', + 'color' => '#9adffd', + ), + array( + 'name' => __( 'Dark Brown', 'twentysixteen' ), + 'slug' => 'dark-brown', + 'color' => '#402b30', + ), + array( + 'name' => __( 'Medium Brown', 'twentysixteen' ), + 'slug' => 'medium-brown', + 'color' => '#774e24', + ), + array( + 'name' => __( 'Dark Red', 'twentysixteen' ), + 'slug' => 'dark-red', + 'color' => '#640c1f', + ), + array( + 'name' => __( 'Bright Red', 'twentysixteen' ), + 'slug' => 'bright-red', + 'color' => '#ff675f', + ), + array( + 'name' => __( 'Yellow', 'twentysixteen' ), + 'slug' => 'yellow', + 'color' => '#ffef8e', + ), + ) + ); + + // Indicate widget sidebars can use selective refresh in the Customizer. + add_theme_support( 'customize-selective-refresh-widgets' ); + } +endif; // twentysixteen_setup() +add_action( 'after_setup_theme', 'twentysixteen_setup' ); + +/** + * Sets the content width in pixels, based on the theme's design and stylesheet. + * + * Priority 0 to make it available to lower priority callbacks. + * + * @global int $content_width + * + * @since Twenty Sixteen 1.0 + */ +function twentysixteen_content_width() { + $GLOBALS['content_width'] = apply_filters( 'twentysixteen_content_width', 840 ); +} +add_action( 'after_setup_theme', 'twentysixteen_content_width', 0 ); + +/** + * Add preconnect for Google Fonts. + * + * @since Twenty Sixteen 1.6 + * + * @param array $urls URLs to print for resource hints. + * @param string $relation_type The relation type the URLs are printed. + * @return array $urls URLs to print for resource hints. + */ +function twentysixteen_resource_hints( $urls, $relation_type ) { + if ( wp_style_is( 'twentysixteen-fonts', 'queue' ) && 'preconnect' === $relation_type ) { + $urls[] = array( + 'href' => '', +/* AI fix - google font */ + 'crossorigin', + ); + } + + return $urls; +} +add_filter( 'wp_resource_hints', 'twentysixteen_resource_hints', 10, 2 ); + +/** + * Registers a widget area. + * + * @link https://developer.wordpress.org/reference/functions/register_sidebar/ + * + * @since Twenty Sixteen 1.0 + */ +function twentysixteen_widgets_init() { + register_sidebar( + array( + 'name' => __( 'Sidebar', 'twentysixteen' ), + 'id' => 'sidebar-1', + 'description' => __( 'Add widgets here to appear in your sidebar.', 'twentysixteen' ), + 'before_widget' => '<section id="%1$s" class="widget %2$s">', + 'after_widget' => '</section>', + 'before_title' => '<h2 class="widget-title">', + 'after_title' => '</h2>', + ) + ); + + register_sidebar( + array( + 'name' => __( 'Content Bottom 1', 'twentysixteen' ), + 'id' => 'sidebar-2', + 'description' => __( 'Appears at the bottom of the content on posts and pages.', 'twentysixteen' ), + 'before_widget' => '<section id="%1$s" class="widget %2$s">', + 'after_widget' => '</section>', + 'before_title' => '<h2 class="widget-title">', + 'after_title' => '</h2>', + ) + ); + + register_sidebar( + array( + 'name' => __( 'Content Bottom 2', 'twentysixteen' ), + 'id' => 'sidebar-3', + 'description' => __( 'Appears at the bottom of the content on posts and pages.', 'twentysixteen' ), + 'before_widget' => '<section id="%1$s" class="widget %2$s">', + 'after_widget' => '</section>', + 'before_title' => '<h2 class="widget-title">', + 'after_title' => '</h2>', + ) + ); +} +add_action( 'widgets_init', 'twentysixteen_widgets_init' ); + +if ( ! function_exists( 'twentysixteen_fonts_url' ) ) : + /** + * Register Google fonts for Twenty Sixteen. + * + * Create your own twentysixteen_fonts_url() function to override in a child theme. + * + * @since Twenty Sixteen 1.0 + * + * @return string Google fonts URL for the theme. + */ + function twentysixteen_fonts_url() { + $fonts_url = ''; + $fonts = array(); + $subsets = 'latin,latin-ext'; + + /* + * translators: If there are characters in your language that are not supported + * by Merriweather, translate this to 'off'. Do not translate into your own language. + */ + if ( 'off' !== _x( 'on', 'Merriweather font: on or off', 'twentysixteen' ) ) { + $fonts[] = 'Merriweather:400,700,900,400italic,700italic,900italic'; + } + + /* + * translators: If there are characters in your language that are not supported + * by Montserrat, translate this to 'off'. Do not translate into your own language. + */ + if ( 'off' !== _x( 'on', 'Montserrat font: on or off', 'twentysixteen' ) ) { + $fonts[] = 'Montserrat:400,700'; + } + + /* + * translators: If there are characters in your language that are not supported + * by Inconsolata, translate this to 'off'. Do not translate into your own language. + */ + if ( 'off' !== _x( 'on', 'Inconsolata font: on or off', 'twentysixteen' ) ) { + $fonts[] = 'Inconsolata:400'; + } + + if ( $fonts ) { + $fonts_url = add_query_arg( + array( + 'family' => urlencode( implode( '|', $fonts ) ), + 'subset' => urlencode( $subsets ), + 'display' => urlencode( 'fallback' ), + ), + // A/I removed google fonts + '' + ); + } + + return $fonts_url; + } +endif; + +/** + * Handles JavaScript detection. + * + * Adds a `js` class to the root `<html>` element when JavaScript is detected. + * + * @since Twenty Sixteen 1.0 + */ +function twentysixteen_javascript_detection() { + echo "<script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script>\n"; +} +add_action( 'wp_head', 'twentysixteen_javascript_detection', 0 ); + +/** + * Enqueues scripts and styles. + * + * @since Twenty Sixteen 1.0 + */ +function twentysixteen_scripts() { + // Add custom fonts, used in the main stylesheet. + wp_enqueue_style( 'twentysixteen-fonts', twentysixteen_fonts_url(), array(), null ); + + // Add Genericons, used in the main stylesheet. + wp_enqueue_style( 'genericons', get_template_directory_uri() . '/genericons/genericons.css', array(), '3.4.1' ); + + // Theme stylesheet. + wp_enqueue_style( 'twentysixteen-style', get_stylesheet_uri(), array(), '20190507' ); + + // Theme block stylesheet. + wp_enqueue_style( 'twentysixteen-block-style', get_template_directory_uri() . '/css/blocks.css', array( 'twentysixteen-style' ), '20190102' ); + + // Load the Internet Explorer specific stylesheet. + wp_enqueue_style( 'twentysixteen-ie', get_template_directory_uri() . '/css/ie.css', array( 'twentysixteen-style' ), '20170530' ); + wp_style_add_data( 'twentysixteen-ie', 'conditional', 'lt IE 10' ); + + // Load the Internet Explorer 8 specific stylesheet. + wp_enqueue_style( 'twentysixteen-ie8', get_template_directory_uri() . '/css/ie8.css', array( 'twentysixteen-style' ), '20170530' ); + wp_style_add_data( 'twentysixteen-ie8', 'conditional', 'lt IE 9' ); + + // Load the Internet Explorer 7 specific stylesheet. + wp_enqueue_style( 'twentysixteen-ie7', get_template_directory_uri() . '/css/ie7.css', array( 'twentysixteen-style' ), '20170530' ); + wp_style_add_data( 'twentysixteen-ie7', 'conditional', 'lt IE 8' ); + + // Load the html5 shiv. + wp_enqueue_script( 'twentysixteen-html5', get_template_directory_uri() . '/js/html5.js', array(), '3.7.3' ); + wp_script_add_data( 'twentysixteen-html5', 'conditional', 'lt IE 9' ); + + wp_enqueue_script( 'twentysixteen-skip-link-focus-fix', get_template_directory_uri() . '/js/skip-link-focus-fix.js', array(), '20170530', true ); + + if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { + wp_enqueue_script( 'comment-reply' ); + } + + if ( is_singular() && wp_attachment_is_image() ) { + wp_enqueue_script( 'twentysixteen-keyboard-image-navigation', get_template_directory_uri() . '/js/keyboard-image-navigation.js', array( 'jquery' ), '20170530' ); + } + + wp_enqueue_script( 'twentysixteen-script', get_template_directory_uri() . '/js/functions.js', array( 'jquery' ), '20181217', true ); + + wp_localize_script( + 'twentysixteen-script', + 'screenReaderText', + array( + 'expand' => __( 'expand child menu', 'twentysixteen' ), + 'collapse' => __( 'collapse child menu', 'twentysixteen' ), + ) + ); +} +add_action( 'wp_enqueue_scripts', 'twentysixteen_scripts' ); + +/** + * Enqueue styles for the block-based editor. + * + * @since Twenty Sixteen 1.6 + */ +function twentysixteen_block_editor_styles() { + // Block styles. + wp_enqueue_style( 'twentysixteen-block-editor-style', get_template_directory_uri() . '/css/editor-blocks.css', array(), '20190102' ); + // Add custom fonts. + wp_enqueue_style( 'twentysixteen-fonts', twentysixteen_fonts_url(), array(), null ); +} +add_action( 'enqueue_block_editor_assets', 'twentysixteen_block_editor_styles' ); + +/** + * Adds custom classes to the array of body classes. + * + * @since Twenty Sixteen 1.0 + * + * @param array $classes Classes for the body element. + * @return array (Maybe) filtered body classes. + */ +function twentysixteen_body_classes( $classes ) { + // Adds a class of custom-background-image to sites with a custom background image. + if ( get_background_image() ) { + $classes[] = 'custom-background-image'; + } + + // Adds a class of group-blog to sites with more than 1 published author. + if ( is_multi_author() ) { + $classes[] = 'group-blog'; + } + + // Adds a class of no-sidebar to sites without active sidebar. + if ( ! is_active_sidebar( 'sidebar-1' ) ) { + $classes[] = 'no-sidebar'; + } + + // Adds a class of hfeed to non-singular pages. + if ( ! is_singular() ) { + $classes[] = 'hfeed'; + } + + return $classes; +} +add_filter( 'body_class', 'twentysixteen_body_classes' ); + +/** + * Converts a HEX value to RGB. + * + * @since Twenty Sixteen 1.0 + * + * @param string $color The original color, in 3- or 6-digit hexadecimal form. + * @return array Array containing RGB (red, green, and blue) values for the given + * HEX code, empty array otherwise. + */ +function twentysixteen_hex2rgb( $color ) { + $color = trim( $color, '#' ); + + if ( strlen( $color ) === 3 ) { + $r = hexdec( substr( $color, 0, 1 ) . substr( $color, 0, 1 ) ); + $g = hexdec( substr( $color, 1, 1 ) . substr( $color, 1, 1 ) ); + $b = hexdec( substr( $color, 2, 1 ) . substr( $color, 2, 1 ) ); + } elseif ( strlen( $color ) === 6 ) { + $r = hexdec( substr( $color, 0, 2 ) ); + $g = hexdec( substr( $color, 2, 2 ) ); + $b = hexdec( substr( $color, 4, 2 ) ); + } else { + return array(); + } + + return array( + 'red' => $r, + 'green' => $g, + 'blue' => $b, + ); +} + +/** + * Custom template tags for this theme. + */ +require get_template_directory() . '/inc/template-tags.php'; + +/** + * Customizer additions. + */ +require get_template_directory() . '/inc/customizer.php'; + +/** + * Add custom image sizes attribute to enhance responsive image functionality + * for content images + * + * @since Twenty Sixteen 1.0 + * + * @param string $sizes A source size value for use in a 'sizes' attribute. + * @param array $size Image size. Accepts an array of width and height + * values in pixels (in that order). + * @return string A source size value for use in a content image 'sizes' attribute. + */ +function twentysixteen_content_image_sizes_attr( $sizes, $size ) { + $width = $size[0]; + + if ( 840 <= $width ) { + $sizes = '(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px'; + } + + if ( 'page' === get_post_type() ) { + if ( 840 > $width ) { + $sizes = '(max-width: ' . $width . 'px) 85vw, ' . $width . 'px'; + } + } else { + if ( 840 > $width && 600 <= $width ) { + $sizes = '(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px'; + } elseif ( 600 > $width ) { + $sizes = '(max-width: ' . $width . 'px) 85vw, ' . $width . 'px'; + } + } + + return $sizes; +} +add_filter( 'wp_calculate_image_sizes', 'twentysixteen_content_image_sizes_attr', 10, 2 ); + +/** + * Add custom image sizes attribute to enhance responsive image functionality + * for post thumbnails + * + * @since Twenty Sixteen 1.0 + * + * @param array $attr Attributes for the image markup. + * @param int $attachment Image attachment ID. + * @param array $size Registered image size or flat array of height and width dimensions. + * @return array The filtered attributes for the image markup. + */ +function twentysixteen_post_thumbnail_sizes_attr( $attr, $attachment, $size ) { + if ( 'post-thumbnail' === $size ) { + if ( is_active_sidebar( 'sidebar-1' ) ) { + $attr['sizes'] = '(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 60vw, (max-width: 1362px) 62vw, 840px'; + } else { + $attr['sizes'] = '(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 88vw, 1200px'; + } + } + return $attr; +} +add_filter( 'wp_get_attachment_image_attributes', 'twentysixteen_post_thumbnail_sizes_attr', 10, 3 ); + +/** + * Modifies tag cloud widget arguments to display all tags in the same font size + * and use list format for better accessibility. + * + * @since Twenty Sixteen 1.1 + * + * @param array $args Arguments for tag cloud widget. + * @return array The filtered arguments for tag cloud widget. + */ +function twentysixteen_widget_tag_cloud_args( $args ) { + $args['largest'] = 1; + $args['smallest'] = 1; + $args['unit'] = 'em'; + $args['format'] = 'list'; + + return $args; +} +add_filter( 'widget_tag_cloud_args', 'twentysixteen_widget_tag_cloud_args' ); diff --git a/wp-content/themes/twentyten/footer.php b/wp-content/themes/twentyten/footer.php index 9000df602..b7b78b7d8 100644 --- a/wp-content/themes/twentyten/footer.php +++ b/wp-content/themes/twentyten/footer.php @@ -1,69 +1,66 @@ -<?php -/** - * Template for displaying the footer - * - * Contains the closing of the id=main div and all content - * after. Calls sidebar-footer.php for bottom widgets. - * - * @package WordPress - * @subpackage Twenty_Ten - * @since Twenty Ten 1.0 - */ -?> - </div><!-- #main --> - - <div id="footer" role="contentinfo"> - <div id="colophon"> - -<?php - /* - * A sidebar in the footer? Yep. You can customize - * your footer with four columns of widgets. - */ - get_sidebar( 'footer' ); -?> - - <div id="site-info"> - <a href="<?php echo esc_url( home_url( '/' ) ); ?>" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" rel="home"> - <?php bloginfo( 'name' ); ?> - </a> - <?php - if ( function_exists( 'the_privacy_policy_link' ) ) { - the_privacy_policy_link( '<span role="separator" aria-hidden="true"></span>', '' ); - } - ?> - </div><!-- #site-info --> - - <div id="site-generator"> - <?php - /** - * Fires before the Twenty Ten credits in the footer. - * - * @since Twenty Ten 1.0 - */ - do_action( 'twentyten_credits' ); - ?> - <a href="<?php echo esc_url( __( 'https://wordpress.org/', 'twentyten' ) ); ?>" class="imprint" title="<?php esc_attr_e( 'Semantic Personal Publishing Platform', 'twentyten' ); ?>"> - <?php - /* translators: %s: WordPress */ - printf( __( 'Proudly powered by %s.', 'twentyten' ), 'WordPress' ); - ?> - </a> - </div><!-- #site-generator --> - - </div><!-- #colophon --> - </div><!-- #footer --> - -</div><!-- #wrapper --> - -<?php - /* - * Always have wp_footer() just before the closing </body> - * tag of your theme, or you will break many plugins, which - * generally use this hook to reference JavaScript files. - */ - - wp_footer(); -?> -</body> -</html> +<?php +/** + * Template for displaying the footer + * + * Contains the closing of the id=main div and all content + * after. Calls sidebar-footer.php for bottom widgets. + * + * @package WordPress + * @subpackage Twenty_Ten + * @since Twenty Ten 1.0 + */ +?> + </div><!-- #main --> + + <div id="footer" role="contentinfo"> + <div id="colophon"> + +<?php + /* + * A sidebar in the footer? Yep. You can customize + * your footer with four columns of widgets. + */ + get_sidebar( 'footer' ); +?> + + <div id="site-info"> + <a href="<?php echo esc_url( home_url( '/' ) ); ?>" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" rel="home"> + <?php bloginfo( 'name' ); ?> + </a> + <?php + if ( function_exists( 'the_privacy_policy_link' ) ) { + the_privacy_policy_link( '<span role="separator" aria-hidden="true"></span>', '' ); + } + ?> + </div><!-- #site-info --> + + <div id="site-generator"> + <?php + /** + * Fires before the Twenty Ten credits in the footer. + * + * @since Twenty Ten 1.0 + */ + do_action( 'twentyten_credits' ); + ?> + + <strong>Proudly powered by <a href="https://www.autistici.org">R*</a></strong> + + </div><!-- #site-generator --> + + </div><!-- #colophon --> + </div><!-- #footer --> + +</div><!-- #wrapper --> + +<?php + /* + * Always have wp_footer() just before the closing </body> + * tag of your theme, or you will break many plugins, which + * generally use this hook to reference JavaScript files. + */ + + wp_footer(); +?> +</body> +</html> diff --git a/wp-content/themes/twentythirteen/functions.php b/wp-content/themes/twentythirteen/functions.php index ecc0165ca..be4641bab 100644 --- a/wp-content/themes/twentythirteen/functions.php +++ b/wp-content/themes/twentythirteen/functions.php @@ -305,6 +305,7 @@ add_action( 'wp_enqueue_scripts', 'twentythirteen_scripts_styles' ); * @param string $relation_type The relation type the URLs are printed. * @return array URLs to print for resource hints. */ +/* function twentythirteen_resource_hints( $urls, $relation_type ) { if ( wp_style_is( 'twentythirteen-fonts', 'queue' ) && 'preconnect' === $relation_type ) { if ( version_compare( $GLOBALS['wp_version'], '4.7-alpha', '>=' ) ) { @@ -321,6 +322,7 @@ function twentythirteen_resource_hints( $urls, $relation_type ) { return $urls; } add_filter( 'wp_resource_hints', 'twentythirteen_resource_hints', 10, 2 ); +*/ /** * Enqueue styles for the block-based editor. diff --git a/wp-content/themes/twentytwelve/functions.php b/wp-content/themes/twentytwelve/functions.php index a42a693f6..44cce96be 100644 --- a/wp-content/themes/twentytwelve/functions.php +++ b/wp-content/themes/twentytwelve/functions.php @@ -208,6 +208,7 @@ add_action( 'enqueue_block_editor_assets', 'twentytwelve_block_editor_styles' ); * @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', '>=' ) ) { @@ -224,6 +225,7 @@ function twentytwelve_resource_hints( $urls, $relation_type ) { return $urls; } add_filter( 'wp_resource_hints', 'twentytwelve_resource_hints', 10, 2 ); +*/ /** * Filter TinyMCE CSS path to include Google Fonts. -- GitLab