diff --git a/wp-content/plugins/wp-footnotes/footnotes.php b/wp-content/plugins/wp-footnotes/footnotes.php index f2449a37a8515f797b51db5c838e22f7a8a76fec..48e7c17c1fdc2e48a652c27ed66d8a1aff51fe6c 100644 --- a/wp-content/plugins/wp-footnotes/footnotes.php +++ b/wp-content/plugins/wp-footnotes/footnotes.php @@ -85,7 +85,8 @@ class swas_wp_footnotes { } else { // Set any unset options - if ($this->current_options['version'] != WP_FOOTNOTES_VERSION) { + if ( !isset( $this->current_options['version'] ) || $this->current_options['version'] != WP_FOOTNOTES_VERSION ) { + foreach ($this->default_options as $key => $value) { if (!isset($this->current_options[$key])) { $this->current_options[$key] = $value; @@ -197,7 +198,7 @@ class swas_wp_footnotes { // Add footnote and record the key $identifiers[$i]['use_footnote'] = count($footnotes); $footnotes[$identifiers[$i]['use_footnote']]['text'] = $identifiers[$i]['text']; - $footnotes[$identifiers[$i]['use_footnote']]['symbol'] = $identifiers[$i]['symbol']; + $footnotes[$identifiers[$i]['use_footnote']]['symbol'] = isset( $identifiers[$i]['symbol'] ) ? $identifiers[$i]['symbol'] : ''; $footnotes[$identifiers[$i]['use_footnote']]['identifiers'][] = $i; } } @@ -270,7 +271,7 @@ class swas_wp_footnotes { */ function add_options_page() { // Add a new menu under Options: - add_options_page('Footnotes', 'Footnotes', 8, __FILE__, array($this, 'footnotes_options_page')); + add_options_page('Footnotes', 'Footnotes', 'manage_options', __FILE__, array($this, 'footnotes_options_page')); } diff --git a/wp-content/plugins/wp-footnotes/options.php b/wp-content/plugins/wp-footnotes/options.php index 273c29c533c76c6824bc4b1741a08108d474d986..16bd7277ef383b47e35f37d25a751a10ec174b3f 100644 --- a/wp-content/plugins/wp-footnotes/options.php +++ b/wp-content/plugins/wp-footnotes/options.php @@ -44,6 +44,10 @@ <div id="icon-options-general" class="icon32"><br></div> <h2>WP-Footnotes Options</h2> <form method="post"> + + <h3 class="title">Documentation & Support</h3> + <p>You can view <a href="http://elvery.net/drzax/more-things/wordpress-footnotes-plugin/" title="WP-Footnotes documentation">the documentation</a> at <a href="http://elvery.net/drzax" title="sw'as">sw'as</a>, the author's website.</p> + <h3 class="title">Identifier</h3> <fieldset style="border:none; line-height:20px; margin-bottom:9px; padding:10px; background:#EAF3FA; -moz-border-radius:5px; -webkit-border-radius: 5px; border-radius: 5px;"> <table> @@ -139,25 +143,13 @@ </form> <hr/> - <form action="https://www.paypal.com/cgi-bin/webscr" method="post" style="display:block; float: right;"> - <input type="hidden" name="cmd" value="_s-xclick" /> - <input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-but04.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!" /> - <img alt="" border="0" src="https://www.paypal.com/en_AU/i/scr/pixel.gif" width="1" height="1" style="display:block; margin:auto;" /> - <input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----MIIHPwYJKoZIhvcNAQcEoIIHMDCCBywCAQExggEwMIIBLAIBADCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwDQYJKoZIhvcNAQEBBQAEgYAZc5FQv6Su9KUiIXljTsI5yn1VRYS9kIPRk9AVwOnAb7sh5/GnpPw/bNKRvFkwRfc6SuopMEhODBY3iji/jglk0CfYWhAT3VaNNfVHN0W+njPCa21I5pxAg0uSEp4obh0rHczQi46zH+Ibo8XtncTdBK/ajiiFE5nqbR8pigz1ITELMAkGBSsOAwIaBQAwgbwGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQIITs0qFEEx2+AgZg99qfawBPZYCsUgCF0QW6/V4hJBnfznZjOtt+dRhIJ6VMFwXc2NQZ6+h0FMR6IBVaQCnJrqC8ylB1kHZClL/wYitPQ+HpQ6AnLPgRQ1gnMm6YsjzY23NpW8t9jHP9rp/sCZRQCCLu0brE6pKjozJXdSHqr5TUbJSl/TKpmuTRdouiQO0Q7+vbDSUmgdHsoNBUQw0HsP2EflKCCA4cwggODMIIC7KADAgECAgEAMA0GCSqGSIb3DQEBBQUAMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbTAeFw0wNDAyMTMxMDEzMTVaFw0zNTAyMTMxMDEzMTVaMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwUdO3fxEzEtcnI7ZKZL412XvZPugoni7i7D7prCe0AtaHTc97CYgm7NsAtJyxNLixmhLV8pyIEaiHXWAh8fPKW+R017+EmXrr9EaquPmsVvTywAAE1PMNOKqo2kl4Gxiz9zZqIajOm1fZGWcGS0f5JQ2kBqNbvbg2/Za+GJ/qwUCAwEAAaOB7jCB6zAdBgNVHQ4EFgQUlp98u8ZvF71ZP1LXChvsENZklGswgbsGA1UdIwSBszCBsIAUlp98u8ZvF71ZP1LXChvsENZklGuhgZSkgZEwgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAgV86VpqAWuXvX6Oro4qJ1tYVIT5DgWpE692Ag422H7yRIr/9j/iKG4Thia/Oflx4TdL+IFJBAyPK9v6zZNZtBgPBynXb048hsP16l2vi0k5Q2JKiPDsEfBhGI+HnxLXEaUWAcVfCsQFvd2A1sxRr67ip5y2wwBelUecP3AjJ+YcxggGaMIIBlgIBATCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwCQYFKw4DAhoFAKBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTA3MDQxNzAwMTczMVowIwYJKoZIhvcNAQkEMRYEFPyJWaTB49feq0RstWocrFDNvmWBMA0GCSqGSIb3DQEBAQUABIGAKWdxKM94C+5JhmL90vRLVpjhefGr8d46gtbkB8666ijuEgFoGo0ESt61EtUzDVp8iAcKqBCq1rKtQH3MOnCEr502BC9pF2kHAy6uw8aKO5nYvVoTVjTIDdRCO5hgzIEb2A+CiTbujFI5SfwzFnhwRntGMdlQsAbiUKcP4kd+VxU=-----END PKCS7-----" /> - </form> - - <h3 class="title">Bug Reports & Feature Requests</h3> - <p>You should report any bugs you find and submit feature requests to <a href="http://plugins.trac.wordpress.org/newticket?component=wp-footnotes&owner=drzax">the WordPress Plugins bug tracker</a> (if you're not already you will need to be <a href="http://wordpress.org/extend/plugins/register.php" title="Sign up to the WordPress Plings Directory">signed up</a> and signed in at wordpress.org/extend/plugins).</p> - <p>If you have a general enquiry that isn't a bug or feature request, the best place is the <a href="http://wordpress.org/tags/wp-footnotes?forum_id=10" title="General Support">WordPress.org support forums for WP-Footnotes</a>. - <h3 class="title">Contributing</h3> - <p>The plugin is primarily maintained on <a href="https://github.com/drzax/WP-Footnotes">GitHub</a> with each new release synced to the WordPress Plugins repository. If you've got the <a href="http://www.youtube.com/watch?feature=player_detailpage&v=ZHDi_AnqwN4#t=3s">skillz</a> please contribute, it's as simple as making a <a href="https://help.github.com/articles/using-pull-requests">pull request</a>.</p> - - <h3 class="title">Documentation & Support</h3> - <p>You can view <a href="http://elvery.net/drzax/more-things/wordpress-footnotes-plugin/" title="WP-Footnotes documentation">the documentation</a> at <a href="http://elvery.net/drzax" title="sw'as">sw'as</a>, the author's website. Support is available via the community <a href="http://wordpress.org/tags/wp-footnotes?forum_id=10" title="General Support">WordPress.org support forums for WP-Footnotes</a>. I do monitor posts there and respond when I can.</p> <h3 class="title">Licensing & Copyright</h3> <p>Copyright © 2007-<?php echo date_format(new DateTime(), 'Y'); ?> <a href="http://elvery.net">Simon Elvery</a></p> <p>WP-Footnotes is licensed under the <a href="http://www.gnu.org/licenses/gpl.html">GNU GPL</a>. WP-Footnotes comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the <a href="http://www.gnu.org/licenses/gpl.html">license</a> for details.</p> + + <p>The plugin is primarily maintained on <a href="https://github.com/drzax/WP-Footnotes">GitHub</a> with each new release synced to the WordPress Plugins repository. If you've got the <a href="http://www.youtube.com/watch?feature=player_detailpage&v=ZHDi_AnqwN4#t=3s">skillz</a> please contribute, it's as simple as making a <a href="https://help.github.com/articles/using-pull-requests">pull request</a>.</p> + </div> \ No newline at end of file diff --git a/wp-content/themes/twentyeleven/footer.php b/wp-content/themes/twentyeleven/footer.php index 0e702f26c8f2a5e18175e10a9496dba742c0df8e..0f138accb5b8c71ed7630ca970f3101ef3fb1d43 100644 --- a/wp-content/themes/twentyeleven/footer.php +++ b/wp-content/themes/twentyeleven/footer.php @@ -1,47 +1,42 @@ -<?php -/** - * Template for displaying the footer - * - * Contains the closing of the id=main div and all content after - * - * @package WordPress - * @subpackage Twenty_Eleven - * @since Twenty Eleven 1.0 - */ -?> - - </div><!-- #main --> - - <footer id="colophon" role="contentinfo"> - - <?php - /* - * A sidebar in the footer? Yep. You can customize - * your footer with three columns of widgets. - */ - if ( ! is_404() ) { - get_sidebar( 'footer' ); - } - ?> - - <div id="site-generator"> - <?php do_action( 'twentyeleven_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/', 'twentyeleven' ) ); ?>" class="imprint" title="<?php esc_attr_e( 'Semantic Personal Publishing Platform', 'twentyeleven' ); ?>"> - <?php - /* translators: %s: WordPress */ - printf( __( 'Proudly powered by %s', 'twentyeleven' ), 'WordPress' ); - ?> - </a> - </div> - </footer><!-- #colophon --> -</div><!-- #page --> - -<?php wp_footer(); ?> - -</body> -</html> +<?php +/** + * Template for displaying the footer + * + * Contains the closing of the id=main div and all content after + * + * @package WordPress + * @subpackage Twenty_Eleven + * @since Twenty Eleven 1.0 + */ +?> + + </div><!-- #main --> + + <footer id="colophon" role="contentinfo"> + + <?php + /* + * A sidebar in the footer? Yep. You can customize + * your footer with three columns of widgets. + */ + if ( ! is_404() ) { + get_sidebar( 'footer' ); + } + ?> + + <div id="site-generator"> + <?php do_action( 'twentyeleven_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> + </footer><!-- #colophon --> +</div><!-- #page --> + +<?php wp_footer(); ?> + +</body> +</html> diff --git a/wp-content/themes/twentythirteen/footer.php b/wp-content/themes/twentythirteen/footer.php index 125d52cde77bad38991d53b5e5aba7169b997a55..7c49c61de85f294008f838150c8fe17b4c37e8cf 100644 --- a/wp-content/themes/twentythirteen/footer.php +++ b/wp-content/themes/twentythirteen/footer.php @@ -1,36 +1,32 @@ -<?php -/** - * The template for displaying the footer - * - * Contains footer content and the closing of the #main and #page div elements. - * - * @package WordPress - * @subpackage Twenty_Thirteen - * @since Twenty Thirteen 1.0 - */ -?> - - </div><!-- #main --> - <footer id="colophon" class="site-footer" role="contentinfo"> - <?php get_sidebar( 'main' ); ?> - - <div class="site-info"> - <?php do_action( 'twentythirteen_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/', 'twentythirteen' ) ); ?>" class="imprint"> - <?php - /* translators: %s: WordPress */ - printf( __( 'Proudly powered by %s', 'twentythirteen' ), '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_Thirteen + * @since Twenty Thirteen 1.0 + */ +?> + + </div><!-- #main --> + <footer id="colophon" class="site-footer" role="contentinfo"> + <?php get_sidebar( 'main' ); ?> + + <div class="site-info"> + <?php do_action( 'twentythirteen_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/twentythirteen/functions.php b/wp-content/themes/twentythirteen/functions.php index 596b5dc028a1d645fd5d59adcfed49eb7737bc10..ecc0165ca213117d0e2ed9e5fa450be1606f3ae3 100644 --- a/wp-content/themes/twentythirteen/functions.php +++ b/wp-content/themes/twentythirteen/functions.php @@ -1,827 +1,829 @@ -<?php -/** - * Twenty Thirteen functions and definitions - * - * Sets up the theme and provides some helper functions, which are used in the - * theme as custom template tags. Others are attached to action and filter - * hooks in WordPress to change core functionality. - * - * 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_Thirteen - * @since Twenty Thirteen 1.0 - */ - -/* - * Set up the content width value based on the theme's design. - * - * @see twentythirteen_content_width() for template-specific adjustments. - */ -if ( ! isset( $content_width ) ) { - $content_width = 604; -} - -/** - * Add support for a custom header image. - */ -require get_template_directory() . '/inc/custom-header.php'; - -/** - * Twenty Thirteen only works in WordPress 3.6 or later. - */ -if ( version_compare( $GLOBALS['wp_version'], '3.6-alpha', '<' ) ) { - require get_template_directory() . '/inc/back-compat.php'; -} - -/** - * Twenty Thirteen setup. - * - * Sets up theme defaults and registers the various WordPress features that - * Twenty Thirteen supports. - * - * @uses load_theme_textdomain() For translation/localization support. - * @uses add_editor_style() To add Visual Editor stylesheets. - * @uses add_theme_support() To add support for automatic feed links, post - * formats, and post thumbnails. - * @uses register_nav_menu() To add support for a navigation menu. - * @uses set_post_thumbnail_size() To set a custom post thumbnail size. - * - * @since Twenty Thirteen 1.0 - */ -function twentythirteen_setup() { - /* - * Makes Twenty Thirteen available for translation. - * - * Translations can be filed at WordPress.org. See: https://translate.wordpress.org/projects/wp-themes/twentythirteen - * If you're building a theme based on Twenty Thirteen, use a find and - * replace to change 'twentythirteen' to the name of your theme in all - * template files. - */ - load_theme_textdomain( 'twentythirteen' ); - - /* - * 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', twentythirteen_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 full and wide align images. - add_theme_support( 'align-wide' ); - - // 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', 'twentythirteen' ), - 'slug' => 'dark-gray', - 'color' => '#141412', - ), - array( - 'name' => __( 'Red', 'twentythirteen' ), - 'slug' => 'red', - 'color' => '#bc360a', - ), - array( - 'name' => __( 'Medium Orange', 'twentythirteen' ), - 'slug' => 'medium-orange', - 'color' => '#db572f', - ), - array( - 'name' => __( 'Light Orange', 'twentythirteen' ), - 'slug' => 'light-orange', - 'color' => '#ea9629', - ), - array( - 'name' => __( 'Yellow', 'twentythirteen' ), - 'slug' => 'yellow', - 'color' => '#fbca3c', - ), - array( - 'name' => __( 'White', 'twentythirteen' ), - 'slug' => 'white', - 'color' => '#fff', - ), - array( - 'name' => __( 'Dark Brown', 'twentythirteen' ), - 'slug' => 'dark-brown', - 'color' => '#220e10', - ), - array( - 'name' => __( 'Medium Brown', 'twentythirteen' ), - 'slug' => 'medium-brown', - 'color' => '#722d19', - ), - array( - 'name' => __( 'Light Brown', 'twentythirteen' ), - 'slug' => 'light-brown', - 'color' => '#eadaa6', - ), - array( - 'name' => __( 'Beige', 'twentythirteen' ), - 'slug' => 'beige', - 'color' => '#e8e5ce', - ), - array( - 'name' => __( 'Off-white', 'twentythirteen' ), - 'slug' => 'off-white', - 'color' => '#f7f5e7', - ), - ) - ); - - // Adds RSS feed links to <head> for posts and comments. - add_theme_support( 'automatic-feed-links' ); - - /* - * Switches 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', - ) - ); - - /* - * This theme supports all available post formats by default. - * See https://wordpress.org/support/article/post-formats/ - */ - add_theme_support( - 'post-formats', - array( - 'aside', - 'audio', - 'chat', - 'gallery', - 'image', - 'link', - 'quote', - 'status', - 'video', - ) - ); - - // This theme uses wp_nav_menu() in one location. - register_nav_menu( 'primary', __( 'Navigation Menu', 'twentythirteen' ) ); - - /* - * This theme uses a custom image size for featured images, displayed on - * "standard" posts and pages. - */ - add_theme_support( 'post-thumbnails' ); - set_post_thumbnail_size( 604, 270, true ); - - // 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' ); -} -add_action( 'after_setup_theme', 'twentythirteen_setup' ); - -/** - * Return the Google font stylesheet URL, if available. - * - * The use of Source Sans Pro and Bitter by default is localized. For languages - * that use characters not supported by the font, the font can be disabled. - * - * @since Twenty Thirteen 1.0 - * - * @return string Font stylesheet or empty string if disabled. - */ -function twentythirteen_fonts_url() { - $fonts_url = ''; - - /* - * translators: If there are characters in your language that are not supported - * by Source Sans Pro, translate this to 'off'. Do not translate into your own language. - */ - $source_sans_pro = _x( 'on', 'Source Sans Pro font: on or off', 'twentythirteen' ); - - /* - * translators: If there are characters in your language that are not supported - * by Bitter, translate this to 'off'. Do not translate into your own language. - */ - $bitter = _x( 'on', 'Bitter font: on or off', 'twentythirteen' ); - - if ( 'off' !== $source_sans_pro || 'off' !== $bitter ) { - $font_families = array(); - - if ( 'off' !== $source_sans_pro ) { - $font_families[] = 'Source Sans Pro:300,400,700,300italic,400italic,700italic'; - } - - if ( 'off' !== $bitter ) { - $font_families[] = 'Bitter:400,700'; - } - - $query_args = array( - 'family' => urlencode( implode( '|', $font_families ) ), - 'subset' => urlencode( 'latin,latin-ext' ), - 'display' => urlencode( 'fallback' ), - ); - $fonts_url = add_query_arg( $query_args, 'https://fonts.googleapis.com/css' ); - } - - return $fonts_url; -} - -/** - * Enqueue scripts and styles for the front end. - * - * @since Twenty Thirteen 1.0 - */ -function twentythirteen_scripts_styles() { - /* - * Adds JavaScript to pages with the comment form to support - * sites with threaded comments (when in use). - */ - if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { - wp_enqueue_script( 'comment-reply' ); - } - - // Adds Masonry to handle vertical alignment of footer widgets. - if ( is_active_sidebar( 'sidebar-1' ) ) { - wp_enqueue_script( 'jquery-masonry' ); - } - - // Loads JavaScript file with functionality specific to Twenty Thirteen. - wp_enqueue_script( 'twentythirteen-script', get_template_directory_uri() . '/js/functions.js', array( 'jquery' ), '20171218', true ); - - // Add Source Sans Pro and Bitter fonts, used in the main stylesheet. - wp_enqueue_style( 'twentythirteen-fonts', twentythirteen_fonts_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' ); - - // Loads our main stylesheet. - wp_enqueue_style( 'twentythirteen-style', get_stylesheet_uri(), array(), '20190507' ); - - // Theme block stylesheet. - wp_enqueue_style( 'twentythirteen-block-style', get_template_directory_uri() . '/css/blocks.css', array( 'twentythirteen-style' ), '20190102' ); - - // Loads the Internet Explorer specific stylesheet. - wp_enqueue_style( 'twentythirteen-ie', get_template_directory_uri() . '/css/ie.css', array( 'twentythirteen-style' ), '20150214' ); - wp_style_add_data( 'twentythirteen-ie', 'conditional', 'lt IE 9' ); -} -add_action( 'wp_enqueue_scripts', 'twentythirteen_scripts_styles' ); - -/** - * Add preconnect for Google Fonts. - * - * @since Twenty Thirteen 2.1 - * - * @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 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', '>=' ) ) { - $urls[] = array( - 'href' => 'https://fonts.gstatic.com', - 'crossorigin', - ); - } else { - $urls[] = 'https://fonts.gstatic.com'; - } - } - - return $urls; -} -add_filter( 'wp_resource_hints', 'twentythirteen_resource_hints', 10, 2 ); - -/** - * Enqueue styles for the block-based editor. - * - * @since Twenty Thirteen 2.5 - */ -function twentythirteen_block_editor_styles() { - // Block styles. - wp_enqueue_style( 'twentythirteen-block-editor-style', get_template_directory_uri() . '/css/editor-blocks.css', array(), '20190102' ); - // Add custom fonts. - wp_enqueue_style( 'twentythirteen-fonts', twentythirteen_fonts_url(), array(), null ); -} -add_action( 'enqueue_block_editor_assets', 'twentythirteen_block_editor_styles' ); - -/** - * Filter the page title. - * - * Creates a nicely formatted and more specific title element text for output - * in head of document, based on current view. - * - * @since Twenty Thirteen 1.0 - * - * @param string $title Default title text for current view. - * @param string $sep Optional separator. - * @return string The filtered title. - */ -function twentythirteen_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', 'twentythirteen' ), max( $paged, $page ) ); - } - - return $title; -} -add_filter( 'wp_title', 'twentythirteen_wp_title', 10, 2 ); - -/** - * Register two widget areas. - * - * @since Twenty Thirteen 1.0 - */ -function twentythirteen_widgets_init() { - register_sidebar( - array( - 'name' => __( 'Main Widget Area', 'twentythirteen' ), - 'id' => 'sidebar-1', - 'description' => __( 'Appears in the footer section of the site.', 'twentythirteen' ), - 'before_widget' => '<aside id="%1$s" class="widget %2$s">', - 'after_widget' => '</aside>', - 'before_title' => '<h3 class="widget-title">', - 'after_title' => '</h3>', - ) - ); - - register_sidebar( - array( - 'name' => __( 'Secondary Widget Area', 'twentythirteen' ), - 'id' => 'sidebar-2', - 'description' => __( 'Appears on posts and pages in the sidebar.', 'twentythirteen' ), - 'before_widget' => '<aside id="%1$s" class="widget %2$s">', - 'after_widget' => '</aside>', - 'before_title' => '<h3 class="widget-title">', - 'after_title' => '</h3>', - ) - ); -} -add_action( 'widgets_init', 'twentythirteen_widgets_init' ); - -if ( ! function_exists( 'twentythirteen_paging_nav' ) ) : - /** - * Display navigation to next/previous set of posts when applicable. - * - * @since Twenty Thirteen 1.0 - */ - function twentythirteen_paging_nav() { - global $wp_query; - - // Don't print empty markup if there's only one page. - if ( $wp_query->max_num_pages < 2 ) { - return; - } - ?> - <nav class="navigation paging-navigation" role="navigation"> - <h1 class="screen-reader-text"><?php _e( 'Posts navigation', 'twentythirteen' ); ?></h1> - <div class="nav-links"> - - <?php if ( get_next_posts_link() ) : ?> - <div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">←</span> Older posts', 'twentythirteen' ) ); ?></div> - <?php endif; ?> - - <?php if ( get_previous_posts_link() ) : ?> - <div class="nav-next"><?php previous_posts_link( __( 'Newer posts <span class="meta-nav">→</span>', 'twentythirteen' ) ); ?></div> - <?php endif; ?> - - </div><!-- .nav-links --> - </nav><!-- .navigation --> - <?php - } -endif; - -if ( ! function_exists( 'twentythirteen_post_nav' ) ) : - /** - * Display navigation to next/previous post when applicable. - * - * @since Twenty Thirteen 1.0 - */ - function twentythirteen_post_nav() { - global $post; - - // Don't print empty markup if there's nowhere to navigate. - $previous = ( is_attachment() ) ? get_post( $post->post_parent ) : get_adjacent_post( false, '', true ); - $next = get_adjacent_post( false, '', false ); - - if ( ! $next && ! $previous ) { - return; - } - ?> - <nav class="navigation post-navigation" role="navigation"> - <h1 class="screen-reader-text"><?php _e( 'Post navigation', 'twentythirteen' ); ?></h1> - <div class="nav-links"> - - <?php previous_post_link( '%link', _x( '<span class="meta-nav">←</span> %title', 'Previous post link', 'twentythirteen' ) ); ?> - <?php next_post_link( '%link', _x( '%title <span class="meta-nav">→</span>', 'Next post link', 'twentythirteen' ) ); ?> - - </div><!-- .nav-links --> - </nav><!-- .navigation --> - <?php - } -endif; - -if ( ! function_exists( 'twentythirteen_entry_meta' ) ) : - /** - * Print HTML with meta information for current post: categories, tags, permalink, author, and date. - * - * Create your own twentythirteen_entry_meta() to override in a child theme. - * - * @since Twenty Thirteen 1.0 - */ - function twentythirteen_entry_meta() { - if ( is_sticky() && is_home() && ! is_paged() ) { - echo '<span class="featured-post">' . esc_html__( 'Sticky', 'twentythirteen' ) . '</span>'; - } - - if ( ! has_post_format( 'link' ) && 'post' == get_post_type() ) { - twentythirteen_entry_date(); - } - - /* translators: Used between list items, there is a space after the comma. */ - $categories_list = get_the_category_list( __( ', ', 'twentythirteen' ) ); - if ( $categories_list ) { - echo '<span class="categories-links">' . $categories_list . '</span>'; - } - - /* translators: Used between list items, there is a space after the comma. */ - $tag_list = get_the_tag_list( '', __( ', ', 'twentythirteen' ) ); - if ( $tag_list ) { - echo '<span class="tags-links">' . $tag_list . '</span>'; - } - - // Post author. - if ( 'post' == get_post_type() ) { - printf( - '<span class="author vcard"><a class="url fn n" href="%1$s" title="%2$s" rel="author">%3$s</a></span>', - esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ), - /* translators: %s: Author display name. */ - esc_attr( sprintf( __( 'View all posts by %s', 'twentythirteen' ), get_the_author() ) ), - get_the_author() - ); - } - } -endif; - -if ( ! function_exists( 'twentythirteen_entry_date' ) ) : - /** - * Print HTML with date information for current post. - * - * Create your own twentythirteen_entry_date() to override in a child theme. - * - * @since Twenty Thirteen 1.0 - * - * @param boolean $echo (optional) Whether to echo the date. Default true. - * @return string The HTML-formatted post date. - */ - function twentythirteen_entry_date( $echo = true ) { - if ( has_post_format( array( 'chat', 'status' ) ) ) { - /* translators: 1: Post format name, 2: Date. */ - $format_prefix = _x( '%1$s on %2$s', '1: post format name. 2: date', 'twentythirteen' ); - } else { - $format_prefix = '%2$s'; - } - - $date = sprintf( - '<span class="date"><a href="%1$s" title="%2$s" rel="bookmark"><time class="entry-date" datetime="%3$s">%4$s</time></a></span>', - esc_url( get_permalink() ), - /* translators: %s: Post title. */ - esc_attr( sprintf( __( 'Permalink to %s', 'twentythirteen' ), the_title_attribute( 'echo=0' ) ) ), - esc_attr( get_the_date( 'c' ) ), - esc_html( sprintf( $format_prefix, get_post_format_string( get_post_format() ), get_the_date() ) ) - ); - - if ( $echo ) { - echo $date; - } - - return $date; - } -endif; - -if ( ! function_exists( 'twentythirteen_the_attached_image' ) ) : - /** - * Print the attached image with a link to the next attached image. - * - * @since Twenty Thirteen 1.0 - */ - function twentythirteen_the_attached_image() { - /** - * Filter the image attachment size to use. - * - * @since Twenty thirteen 1.0 - * - * @param array $size { - * @type int The attachment height in pixels. - * @type int The attachment width in pixels. - * } - */ - $attachment_size = apply_filters( 'twentythirteen_attachment_size', array( 724, 724 ) ); - $next_attachment_url = wp_get_attachment_url(); - $post = get_post(); - - /* - * 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" title="%2$s" rel="attachment">%3$s</a>', - esc_url( $next_attachment_url ), - the_title_attribute( array( 'echo' => false ) ), - wp_get_attachment_image( $post->ID, $attachment_size ) - ); - } -endif; - -/** - * Return the post URL. - * - * @uses get_url_in_content() to get the URL in the post meta (if it exists) or - * the first link found in the post content. - * - * Falls back to the post permalink if no URL is found in the post. - * - * @since Twenty Thirteen 1.0 - * - * @return string The Link format URL. - */ -function twentythirteen_get_link_url() { - $content = get_the_content(); - $has_url = get_url_in_content( $content ); - - return ( $has_url ) ? $has_url : apply_filters( 'the_permalink', get_permalink() ); -} - -if ( ! function_exists( 'twentythirteen_excerpt_more' ) && ! is_admin() ) : - /** - * Replaces "[...]" (appended to automatically generated excerpts) with ... - * and a Continue reading link. - * - * @since Twenty Thirteen 1.4 - * - * @param string $more Default Read More excerpt link. - * @return string Filtered Read More excerpt link. - */ - function twentythirteen_excerpt_more( $more ) { - $link = sprintf( - '<a href="%1$s" class="more-link">%2$s</a>', - esc_url( get_permalink( get_the_ID() ) ), - /* translators: %s: Post title. */ - sprintf( __( 'Continue reading %s <span class="meta-nav">→</span>', 'twentythirteen' ), '<span class="screen-reader-text">' . get_the_title( get_the_ID() ) . '</span>' ) - ); - return ' … ' . $link; - } - add_filter( 'excerpt_more', 'twentythirteen_excerpt_more' ); -endif; - -/** - * Extend the default WordPress body classes. - * - * Adds body classes to denote: - * 1. Single or multiple authors. - * 2. Active widgets in the sidebar to change the layout and spacing. - * 3. When avatars are disabled in discussion settings. - * - * @since Twenty Thirteen 1.0 - * - * @param array $classes A list of existing body class values. - * @return array The filtered body class list. - */ -function twentythirteen_body_class( $classes ) { - if ( ! is_multi_author() ) { - $classes[] = 'single-author'; - } - - if ( is_active_sidebar( 'sidebar-2' ) && ! is_attachment() && ! is_404() ) { - $classes[] = 'sidebar'; - } - - if ( ! get_option( 'show_avatars' ) ) { - $classes[] = 'no-avatars'; - } - - return $classes; -} -add_filter( 'body_class', 'twentythirteen_body_class' ); - -/** - * Adjust content_width value for video post formats and attachment templates. - * - * @since Twenty Thirteen 1.0 - */ -function twentythirteen_content_width() { - global $content_width; - - if ( is_attachment() ) { - $content_width = 724; - } elseif ( has_post_format( 'audio' ) ) { - $content_width = 484; - } -} -add_action( 'template_redirect', 'twentythirteen_content_width' ); - -/** - * Add postMessage support for site title and description for the Customizer. - * - * @since Twenty Thirteen 1.0 - * - * @param WP_Customize_Manager $wp_customize Customizer object. - */ -function twentythirteen_customize_register( $wp_customize ) { - $wp_customize->get_setting( 'blogname' )->transport = 'postMessage'; - $wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage'; - $wp_customize->get_setting( 'header_textcolor' )->transport = 'postMessage'; - - if ( isset( $wp_customize->selective_refresh ) ) { - $wp_customize->selective_refresh->add_partial( - 'blogname', - array( - 'selector' => '.site-title', - 'container_inclusive' => false, - 'render_callback' => 'twentythirteen_customize_partial_blogname', - ) - ); - $wp_customize->selective_refresh->add_partial( - 'blogdescription', - array( - 'selector' => '.site-description', - 'container_inclusive' => false, - 'render_callback' => 'twentythirteen_customize_partial_blogdescription', - ) - ); - } -} -add_action( 'customize_register', 'twentythirteen_customize_register' ); - -/** - * Render the site title for the selective refresh partial. - * - * @since Twenty Thirteen 1.9 - * @see twentythirteen_customize_register() - * - * @return void - */ -function twentythirteen_customize_partial_blogname() { - bloginfo( 'name' ); -} - -/** - * Render the site tagline for the selective refresh partial. - * - * @since Twenty Thirteen 1.9 - * @see twentythirteen_customize_register() - * - * @return void - */ -function twentythirteen_customize_partial_blogdescription() { - bloginfo( 'description' ); -} - -/** - * Enqueue Javascript postMessage handlers for the Customizer. - * - * Binds JavaScript handlers to make the Customizer preview - * reload changes asynchronously. - * - * @since Twenty Thirteen 1.0 - */ -function twentythirteen_customize_preview_js() { - wp_enqueue_script( 'twentythirteen-customizer', get_template_directory_uri() . '/js/theme-customizer.js', array( 'customize-preview' ), '20141120', true ); -} -add_action( 'customize_preview_init', 'twentythirteen_customize_preview_js' ); - -/** - * Modifies tag cloud widget arguments to display all tags in the same font size - * and use list format for better accessibility. - * - * @since Twenty Thirteen 2.3 - * - * @param array $args Arguments for tag cloud widget. - * @return array The filtered arguments for tag cloud widget. - */ -function twentythirteen_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', 'twentythirteen_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 Thirteen 3.0 - * - * @param string $template Template file. - * @return string Replacement template file. - */ -function twentythirteen_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', 'twentythirteen_author_bio_template' ); - -if ( ! function_exists( 'wp_body_open' ) ) : - /** - * Fire the wp_body_open action. - * - * Added for backward compatibility to support pre-5.2.0 WordPress versions. - * - * @since Twenty Thirteen 2.8 - */ - function wp_body_open() { - /** - * Triggered after the opening <body> tag. - * - * @since Twenty Thirteen 2.8 - */ - do_action( 'wp_body_open' ); - } -endif; +<?php +/** + * Twenty Thirteen functions and definitions + * + * Sets up the theme and provides some helper functions, which are used in the + * theme as custom template tags. Others are attached to action and filter + * hooks in WordPress to change core functionality. + * + * 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_Thirteen + * @since Twenty Thirteen 1.0 + */ + +/* + * Set up the content width value based on the theme's design. + * + * @see twentythirteen_content_width() for template-specific adjustments. + */ +if ( ! isset( $content_width ) ) { + $content_width = 604; +} + +/** + * Add support for a custom header image. + */ +require get_template_directory() . '/inc/custom-header.php'; + +/** + * Twenty Thirteen only works in WordPress 3.6 or later. + */ +if ( version_compare( $GLOBALS['wp_version'], '3.6-alpha', '<' ) ) { + require get_template_directory() . '/inc/back-compat.php'; +} + +/** + * Twenty Thirteen setup. + * + * Sets up theme defaults and registers the various WordPress features that + * Twenty Thirteen supports. + * + * @uses load_theme_textdomain() For translation/localization support. + * @uses add_editor_style() To add Visual Editor stylesheets. + * @uses add_theme_support() To add support for automatic feed links, post + * formats, and post thumbnails. + * @uses register_nav_menu() To add support for a navigation menu. + * @uses set_post_thumbnail_size() To set a custom post thumbnail size. + * + * @since Twenty Thirteen 1.0 + */ +function twentythirteen_setup() { + /* + * Makes Twenty Thirteen available for translation. + * + * Translations can be filed at WordPress.org. See: https://translate.wordpress.org/projects/wp-themes/twentythirteen + * If you're building a theme based on Twenty Thirteen, use a find and + * replace to change 'twentythirteen' to the name of your theme in all + * template files. + */ + load_theme_textdomain( 'twentythirteen' ); + + /* + * 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', twentythirteen_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 full and wide align images. + add_theme_support( 'align-wide' ); + + // 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', 'twentythirteen' ), + 'slug' => 'dark-gray', + 'color' => '#141412', + ), + array( + 'name' => __( 'Red', 'twentythirteen' ), + 'slug' => 'red', + 'color' => '#bc360a', + ), + array( + 'name' => __( 'Medium Orange', 'twentythirteen' ), + 'slug' => 'medium-orange', + 'color' => '#db572f', + ), + array( + 'name' => __( 'Light Orange', 'twentythirteen' ), + 'slug' => 'light-orange', + 'color' => '#ea9629', + ), + array( + 'name' => __( 'Yellow', 'twentythirteen' ), + 'slug' => 'yellow', + 'color' => '#fbca3c', + ), + array( + 'name' => __( 'White', 'twentythirteen' ), + 'slug' => 'white', + 'color' => '#fff', + ), + array( + 'name' => __( 'Dark Brown', 'twentythirteen' ), + 'slug' => 'dark-brown', + 'color' => '#220e10', + ), + array( + 'name' => __( 'Medium Brown', 'twentythirteen' ), + 'slug' => 'medium-brown', + 'color' => '#722d19', + ), + array( + 'name' => __( 'Light Brown', 'twentythirteen' ), + 'slug' => 'light-brown', + 'color' => '#eadaa6', + ), + array( + 'name' => __( 'Beige', 'twentythirteen' ), + 'slug' => 'beige', + 'color' => '#e8e5ce', + ), + array( + 'name' => __( 'Off-white', 'twentythirteen' ), + 'slug' => 'off-white', + 'color' => '#f7f5e7', + ), + ) + ); + + // Adds RSS feed links to <head> for posts and comments. + add_theme_support( 'automatic-feed-links' ); + + /* + * Switches 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', + ) + ); + + /* + * This theme supports all available post formats by default. + * See https://wordpress.org/support/article/post-formats/ + */ + add_theme_support( + 'post-formats', + array( + 'aside', + 'audio', + 'chat', + 'gallery', + 'image', + 'link', + 'quote', + 'status', + 'video', + ) + ); + + // This theme uses wp_nav_menu() in one location. + register_nav_menu( 'primary', __( 'Navigation Menu', 'twentythirteen' ) ); + + /* + * This theme uses a custom image size for featured images, displayed on + * "standard" posts and pages. + */ + add_theme_support( 'post-thumbnails' ); + set_post_thumbnail_size( 604, 270, true ); + + // 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' ); +} +add_action( 'after_setup_theme', 'twentythirteen_setup' ); + +/** + * Return the Google font stylesheet URL, if available. + * + * The use of Source Sans Pro and Bitter by default is localized. For languages + * that use characters not supported by the font, the font can be disabled. + * + * @since Twenty Thirteen 1.0 + * + * @return string Font stylesheet or empty string if disabled. + */ +function twentythirteen_fonts_url() { + $fonts_url = ''; + + /* Translators: If there are characters in your language that are not + * supported by Source Sans Pro, translate this to 'off'. Do not translate + * into your own language. + */ + $source_sans_pro = _x( 'on', 'Source Sans Pro font: on or off', 'twentythirteen' ); + + /* Translators: If there are characters in your language that are not + * supported by Bitter, translate this to 'off'. Do not translate into your + * own language. + */ + $bitter = _x( 'on', 'Bitter font: on or off', 'twentythirteen' ); + + if ( 'off' !== $source_sans_pro || 'off' !== $bitter ) { + $font_families = array(); + + if ( 'off' !== $source_sans_pro ) { + $font_families[] = 'Source Sans Pro:300,400,700,300italic,400italic,700italic'; + } + + if ( 'off' !== $bitter ) { + $font_families[] = 'Bitter:400,700'; + } + + $query_args = array( + 'family' => urlencode( implode( '|', $font_families ) ), + 'subset' => urlencode( 'latin,latin-ext' ), + ); + $fonts_url = add_query_arg( $query_args, '' ); + } + +/*AI fix - tolto google font */ + + return $fonts_url; +} + +/** + * Enqueue scripts and styles for the front end. + * + * @since Twenty Thirteen 1.0 + */ +function twentythirteen_scripts_styles() { + /* + * Adds JavaScript to pages with the comment form to support + * sites with threaded comments (when in use). + */ + if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { + wp_enqueue_script( 'comment-reply' ); + } + + // Adds Masonry to handle vertical alignment of footer widgets. + if ( is_active_sidebar( 'sidebar-1' ) ) { + wp_enqueue_script( 'jquery-masonry' ); + } + + // Loads JavaScript file with functionality specific to Twenty Thirteen. + wp_enqueue_script( 'twentythirteen-script', get_template_directory_uri() . '/js/functions.js', array( 'jquery' ), '20171218', true ); + + // Add Source Sans Pro and Bitter fonts, used in the main stylesheet. + wp_enqueue_style( 'twentythirteen-fonts', twentythirteen_fonts_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' ); + + // Loads our main stylesheet. + wp_enqueue_style( 'twentythirteen-style', get_stylesheet_uri(), array(), '20190507' ); + + // Theme block stylesheet. + wp_enqueue_style( 'twentythirteen-block-style', get_template_directory_uri() . '/css/blocks.css', array( 'twentythirteen-style' ), '20190102' ); + + // Loads the Internet Explorer specific stylesheet. + wp_enqueue_style( 'twentythirteen-ie', get_template_directory_uri() . '/css/ie.css', array( 'twentythirteen-style' ), '20150214' ); + wp_style_add_data( 'twentythirteen-ie', 'conditional', 'lt IE 9' ); +} +add_action( 'wp_enqueue_scripts', 'twentythirteen_scripts_styles' ); + +/** + * Add preconnect for Google Fonts. + * + * @since Twenty Thirteen 2.1 + * + * @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 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', '>=' ) ) { + $urls[] = array( + 'href' => '', + 'crossorigin', + ); + } else { + $urls[] = ''; + /* AI fix google fonts */ + } + } + + return $urls; +} +add_filter( 'wp_resource_hints', 'twentythirteen_resource_hints', 10, 2 ); + +/** + * Enqueue styles for the block-based editor. + * + * @since Twenty Thirteen 2.5 + */ +function twentythirteen_block_editor_styles() { + // Block styles. + wp_enqueue_style( 'twentythirteen-block-editor-style', get_template_directory_uri() . '/css/editor-blocks.css', array(), '20190102' ); + // Add custom fonts. + wp_enqueue_style( 'twentythirteen-fonts', twentythirteen_fonts_url(), array(), null ); +} +add_action( 'enqueue_block_editor_assets', 'twentythirteen_block_editor_styles' ); + +/** + * Filter the page title. + * + * Creates a nicely formatted and more specific title element text for output + * in head of document, based on current view. + * + * @since Twenty Thirteen 1.0 + * + * @param string $title Default title text for current view. + * @param string $sep Optional separator. + * @return string The filtered title. + */ +function twentythirteen_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', 'twentythirteen' ), max( $paged, $page ) ); + } + + return $title; +} +add_filter( 'wp_title', 'twentythirteen_wp_title', 10, 2 ); + +/** + * Register two widget areas. + * + * @since Twenty Thirteen 1.0 + */ +function twentythirteen_widgets_init() { + register_sidebar( + array( + 'name' => __( 'Main Widget Area', 'twentythirteen' ), + 'id' => 'sidebar-1', + 'description' => __( 'Appears in the footer section of the site.', 'twentythirteen' ), + 'before_widget' => '<aside id="%1$s" class="widget %2$s">', + 'after_widget' => '</aside>', + 'before_title' => '<h3 class="widget-title">', + 'after_title' => '</h3>', + ) + ); + + register_sidebar( + array( + 'name' => __( 'Secondary Widget Area', 'twentythirteen' ), + 'id' => 'sidebar-2', + 'description' => __( 'Appears on posts and pages in the sidebar.', 'twentythirteen' ), + 'before_widget' => '<aside id="%1$s" class="widget %2$s">', + 'after_widget' => '</aside>', + 'before_title' => '<h3 class="widget-title">', + 'after_title' => '</h3>', + ) + ); +} +add_action( 'widgets_init', 'twentythirteen_widgets_init' ); + +if ( ! function_exists( 'twentythirteen_paging_nav' ) ) : + /** + * Display navigation to next/previous set of posts when applicable. + * + * @since Twenty Thirteen 1.0 + */ + function twentythirteen_paging_nav() { + global $wp_query; + + // Don't print empty markup if there's only one page. + if ( $wp_query->max_num_pages < 2 ) { + return; + } + ?> + <nav class="navigation paging-navigation" role="navigation"> + <h1 class="screen-reader-text"><?php _e( 'Posts navigation', 'twentythirteen' ); ?></h1> + <div class="nav-links"> + + <?php if ( get_next_posts_link() ) : ?> + <div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">←</span> Older posts', 'twentythirteen' ) ); ?></div> + <?php endif; ?> + + <?php if ( get_previous_posts_link() ) : ?> + <div class="nav-next"><?php previous_posts_link( __( 'Newer posts <span class="meta-nav">→</span>', 'twentythirteen' ) ); ?></div> + <?php endif; ?> + + </div><!-- .nav-links --> + </nav><!-- .navigation --> + <?php + } +endif; + +if ( ! function_exists( 'twentythirteen_post_nav' ) ) : + /** + * Display navigation to next/previous post when applicable. + * + * @since Twenty Thirteen 1.0 + */ + function twentythirteen_post_nav() { + global $post; + + // Don't print empty markup if there's nowhere to navigate. + $previous = ( is_attachment() ) ? get_post( $post->post_parent ) : get_adjacent_post( false, '', true ); + $next = get_adjacent_post( false, '', false ); + + if ( ! $next && ! $previous ) { + return; + } + ?> + <nav class="navigation post-navigation" role="navigation"> + <h1 class="screen-reader-text"><?php _e( 'Post navigation', 'twentythirteen' ); ?></h1> + <div class="nav-links"> + + <?php previous_post_link( '%link', _x( '<span class="meta-nav">←</span> %title', 'Previous post link', 'twentythirteen' ) ); ?> + <?php next_post_link( '%link', _x( '%title <span class="meta-nav">→</span>', 'Next post link', 'twentythirteen' ) ); ?> + + </div><!-- .nav-links --> + </nav><!-- .navigation --> + <?php + } +endif; + +if ( ! function_exists( 'twentythirteen_entry_meta' ) ) : + /** + * Print HTML with meta information for current post: categories, tags, permalink, author, and date. + * + * Create your own twentythirteen_entry_meta() to override in a child theme. + * + * @since Twenty Thirteen 1.0 + */ + function twentythirteen_entry_meta() { + if ( is_sticky() && is_home() && ! is_paged() ) { + echo '<span class="featured-post">' . esc_html__( 'Sticky', 'twentythirteen' ) . '</span>'; + } + + if ( ! has_post_format( 'link' ) && 'post' == get_post_type() ) { + twentythirteen_entry_date(); + } + + /* translators: Used between list items, there is a space after the comma. */ + $categories_list = get_the_category_list( __( ', ', 'twentythirteen' ) ); + if ( $categories_list ) { + echo '<span class="categories-links">' . $categories_list . '</span>'; + } + + /* translators: Used between list items, there is a space after the comma. */ + $tag_list = get_the_tag_list( '', __( ', ', 'twentythirteen' ) ); + if ( $tag_list ) { + echo '<span class="tags-links">' . $tag_list . '</span>'; + } + + // Post author. + if ( 'post' == get_post_type() ) { + printf( + '<span class="author vcard"><a class="url fn n" href="%1$s" title="%2$s" rel="author">%3$s</a></span>', + esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ), + /* translators: %s: Author display name. */ + esc_attr( sprintf( __( 'View all posts by %s', 'twentythirteen' ), get_the_author() ) ), + get_the_author() + ); + } + } +endif; + +if ( ! function_exists( 'twentythirteen_entry_date' ) ) : + /** + * Print HTML with date information for current post. + * + * Create your own twentythirteen_entry_date() to override in a child theme. + * + * @since Twenty Thirteen 1.0 + * + * @param boolean $echo (optional) Whether to echo the date. Default true. + * @return string The HTML-formatted post date. + */ + function twentythirteen_entry_date( $echo = true ) { + if ( has_post_format( array( 'chat', 'status' ) ) ) { + /* translators: 1: Post format name, 2: Date. */ + $format_prefix = _x( '%1$s on %2$s', '1: post format name. 2: date', 'twentythirteen' ); + } else { + $format_prefix = '%2$s'; + } + + $date = sprintf( + '<span class="date"><a href="%1$s" title="%2$s" rel="bookmark"><time class="entry-date" datetime="%3$s">%4$s</time></a></span>', + esc_url( get_permalink() ), + /* translators: %s: Post title. */ + esc_attr( sprintf( __( 'Permalink to %s', 'twentythirteen' ), the_title_attribute( 'echo=0' ) ) ), + esc_attr( get_the_date( 'c' ) ), + esc_html( sprintf( $format_prefix, get_post_format_string( get_post_format() ), get_the_date() ) ) + ); + + if ( $echo ) { + echo $date; + } + + return $date; + } +endif; + +if ( ! function_exists( 'twentythirteen_the_attached_image' ) ) : + /** + * Print the attached image with a link to the next attached image. + * + * @since Twenty Thirteen 1.0 + */ + function twentythirteen_the_attached_image() { + /** + * Filter the image attachment size to use. + * + * @since Twenty thirteen 1.0 + * + * @param array $size { + * @type int The attachment height in pixels. + * @type int The attachment width in pixels. + * } + */ + $attachment_size = apply_filters( 'twentythirteen_attachment_size', array( 724, 724 ) ); + $next_attachment_url = wp_get_attachment_url(); + $post = get_post(); + + /* + * 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" title="%2$s" rel="attachment">%3$s</a>', + esc_url( $next_attachment_url ), + the_title_attribute( array( 'echo' => false ) ), + wp_get_attachment_image( $post->ID, $attachment_size ) + ); + } +endif; + +/** + * Return the post URL. + * + * @uses get_url_in_content() to get the URL in the post meta (if it exists) or + * the first link found in the post content. + * + * Falls back to the post permalink if no URL is found in the post. + * + * @since Twenty Thirteen 1.0 + * + * @return string The Link format URL. + */ +function twentythirteen_get_link_url() { + $content = get_the_content(); + $has_url = get_url_in_content( $content ); + + return ( $has_url ) ? $has_url : apply_filters( 'the_permalink', get_permalink() ); +} + +if ( ! function_exists( 'twentythirteen_excerpt_more' ) && ! is_admin() ) : + /** + * Replaces "[...]" (appended to automatically generated excerpts) with ... + * and a Continue reading link. + * + * @since Twenty Thirteen 1.4 + * + * @param string $more Default Read More excerpt link. + * @return string Filtered Read More excerpt link. + */ + function twentythirteen_excerpt_more( $more ) { + $link = sprintf( + '<a href="%1$s" class="more-link">%2$s</a>', + esc_url( get_permalink( get_the_ID() ) ), + /* translators: %s: Post title. */ + sprintf( __( 'Continue reading %s <span class="meta-nav">→</span>', 'twentythirteen' ), '<span class="screen-reader-text">' . get_the_title( get_the_ID() ) . '</span>' ) + ); + return ' … ' . $link; + } + add_filter( 'excerpt_more', 'twentythirteen_excerpt_more' ); +endif; + +/** + * Extend the default WordPress body classes. + * + * Adds body classes to denote: + * 1. Single or multiple authors. + * 2. Active widgets in the sidebar to change the layout and spacing. + * 3. When avatars are disabled in discussion settings. + * + * @since Twenty Thirteen 1.0 + * + * @param array $classes A list of existing body class values. + * @return array The filtered body class list. + */ +function twentythirteen_body_class( $classes ) { + if ( ! is_multi_author() ) { + $classes[] = 'single-author'; + } + + if ( is_active_sidebar( 'sidebar-2' ) && ! is_attachment() && ! is_404() ) { + $classes[] = 'sidebar'; + } + + if ( ! get_option( 'show_avatars' ) ) { + $classes[] = 'no-avatars'; + } + + return $classes; +} +add_filter( 'body_class', 'twentythirteen_body_class' ); + +/** + * Adjust content_width value for video post formats and attachment templates. + * + * @since Twenty Thirteen 1.0 + */ +function twentythirteen_content_width() { + global $content_width; + + if ( is_attachment() ) { + $content_width = 724; + } elseif ( has_post_format( 'audio' ) ) { + $content_width = 484; + } +} +add_action( 'template_redirect', 'twentythirteen_content_width' ); + +/** + * Add postMessage support for site title and description for the Customizer. + * + * @since Twenty Thirteen 1.0 + * + * @param WP_Customize_Manager $wp_customize Customizer object. + */ +function twentythirteen_customize_register( $wp_customize ) { + $wp_customize->get_setting( 'blogname' )->transport = 'postMessage'; + $wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage'; + $wp_customize->get_setting( 'header_textcolor' )->transport = 'postMessage'; + + if ( isset( $wp_customize->selective_refresh ) ) { + $wp_customize->selective_refresh->add_partial( + 'blogname', + array( + 'selector' => '.site-title', + 'container_inclusive' => false, + 'render_callback' => 'twentythirteen_customize_partial_blogname', + ) + ); + $wp_customize->selective_refresh->add_partial( + 'blogdescription', + array( + 'selector' => '.site-description', + 'container_inclusive' => false, + 'render_callback' => 'twentythirteen_customize_partial_blogdescription', + ) + ); + } +} +add_action( 'customize_register', 'twentythirteen_customize_register' ); + +/** + * Render the site title for the selective refresh partial. + * + * @since Twenty Thirteen 1.9 + * @see twentythirteen_customize_register() + * + * @return void + */ +function twentythirteen_customize_partial_blogname() { + bloginfo( 'name' ); +} + +/** + * Render the site tagline for the selective refresh partial. + * + * @since Twenty Thirteen 1.9 + * @see twentythirteen_customize_register() + * + * @return void + */ +function twentythirteen_customize_partial_blogdescription() { + bloginfo( 'description' ); +} + +/** + * Enqueue Javascript postMessage handlers for the Customizer. + * + * Binds JavaScript handlers to make the Customizer preview + * reload changes asynchronously. + * + * @since Twenty Thirteen 1.0 + */ +function twentythirteen_customize_preview_js() { + wp_enqueue_script( 'twentythirteen-customizer', get_template_directory_uri() . '/js/theme-customizer.js', array( 'customize-preview' ), '20141120', true ); +} +add_action( 'customize_preview_init', 'twentythirteen_customize_preview_js' ); + +/** + * Modifies tag cloud widget arguments to display all tags in the same font size + * and use list format for better accessibility. + * + * @since Twenty Thirteen 2.3 + * + * @param array $args Arguments for tag cloud widget. + * @return array The filtered arguments for tag cloud widget. + */ +function twentythirteen_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', 'twentythirteen_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 Thirteen 3.0 + * + * @param string $template Template file. + * @return string Replacement template file. + */ +function twentythirteen_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', 'twentythirteen_author_bio_template' ); + +if ( ! function_exists( 'wp_body_open' ) ) : + /** + * Fire the wp_body_open action. + * + * Added for backward compatibility to support pre-5.2.0 WordPress versions. + * + * @since Twenty Thirteen 2.8 + */ + function wp_body_open() { + /** + * Triggered after the opening <body> tag. + * + * @since Twenty Thirteen 2.8 + */ + do_action( 'wp_body_open' ); + } +endif; diff --git a/wp-content/themes/twentytwelve/footer.php b/wp-content/themes/twentytwelve/footer.php index c9bde312b77b8d52ee53d303723337a081980ce3..2ca9b6c0100326f6940e67f5248251f1bd830593 100644 --- a/wp-content/themes/twentytwelve/footer.php +++ b/wp-content/themes/twentytwelve/footer.php @@ -1,33 +1,28 @@ -<?php -/** - * The template for displaying the footer - * - * Contains footer content and the closing of the #main and #page div elements. - * - * @package WordPress - * @subpackage Twenty_Twelve - * @since Twenty Twelve 1.0 - */ -?> - </div><!-- #main .wrapper --> - <footer id="colophon" role="contentinfo"> - <div class="site-info"> - <?php do_action( 'twentytwelve_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/', 'twentytwelve' ) ); ?>" class="imprint" title="<?php esc_attr_e( 'Semantic Personal Publishing Platform', 'twentytwelve' ); ?>"> - <?php - /* translators: %s: WordPress */ - printf( __( 'Proudly powered by %s', 'twentytwelve' ), '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_Twelve + * @since Twenty Twelve 1.0 + */ +?> + </div><!-- #main .wrapper --> + <footer id="colophon" role="contentinfo"> + <div class="site-info"> + <?php do_action( 'twentytwelve_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/twentytwelve/functions.php b/wp-content/themes/twentytwelve/functions.php index ec54db0cc1410f7eddfaaceb4ba8588d501decf9..a42a693f6969cab73863eeaf11589270f2f12e5e 100644 --- a/wp-content/themes/twentytwelve/functions.php +++ b/wp-content/themes/twentytwelve/functions.php @@ -1,721 +1,696 @@ -<?php -/** - * Twenty Twelve functions and definitions - * - * Sets up the theme and provides some helper functions, which are used - * in the theme as custom template tags. Others are attached to action and - * filter hooks in WordPress to change core functionality. - * - * 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_Twelve - * @since Twenty Twelve 1.0 - */ - -// Set up the content width value based on the theme's design and stylesheet. -if ( ! isset( $content_width ) ) { - $content_width = 625; -} - -/** - * Twenty Twelve setup. - * - * Sets up theme defaults and registers the various WordPress features that - * Twenty Twelve supports. - * - * @uses load_theme_textdomain() For translation/localization support. - * @uses add_editor_style() To add a Visual Editor stylesheet. - * @uses add_theme_support() To add support for post thumbnails, automatic feed links, - * custom background, and post formats. - * @uses register_nav_menu() To add support for navigation menus. - * @uses set_post_thumbnail_size() To set a custom post thumbnail size. - * - * @since Twenty Twelve 1.0 - */ -function twentytwelve_setup() { - /* - * Makes Twenty Twelve available for translation. - * - * Translations can be filed at WordPress.org. See: https://translate.wordpress.org/projects/wp-themes/twentytwelve - * If you're building a theme based on Twenty Twelve, use a find and replace - * to change 'twentytwelve' to the name of your theme in all the template files. - */ - load_theme_textdomain( 'twentytwelve' ); - - // This theme styles the visual editor with editor-style.css to match the theme style. - add_editor_style(); - - // 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' => __( 'Blue', 'twentytwelve' ), - 'slug' => 'blue', - 'color' => '#21759b', - ), - array( - 'name' => __( 'Dark Gray', 'twentytwelve' ), - 'slug' => 'dark-gray', - 'color' => '#444', - ), - array( - 'name' => __( 'Medium Gray', 'twentytwelve' ), - 'slug' => 'medium-gray', - 'color' => '#9f9f9f', - ), - array( - 'name' => __( 'Light Gray', 'twentytwelve' ), - 'slug' => 'light-gray', - 'color' => '#e6e6e6', - ), - array( - 'name' => __( 'White', 'twentytwelve' ), - 'slug' => 'white', - 'color' => '#fff', - ), - ) - ); - - // Adds RSS feed links to <head> for posts and comments. - add_theme_support( 'automatic-feed-links' ); - - // This theme supports a variety of post formats. - add_theme_support( 'post-formats', array( 'aside', 'image', 'link', 'quote', 'status' ) ); - - // This theme uses wp_nav_menu() in one location. - register_nav_menu( 'primary', __( 'Primary Menu', 'twentytwelve' ) ); - - /* - * This theme supports custom background color and image, - * and here we also set up the default background color. - */ - add_theme_support( - 'custom-background', - array( - 'default-color' => 'e6e6e6', - ) - ); - - // This theme uses a custom image size for featured images, displayed on "standard" posts. - add_theme_support( 'post-thumbnails' ); - set_post_thumbnail_size( 624, 9999 ); // Unlimited height, soft crop. - - // Indicate widget sidebars can use selective refresh in the Customizer. - add_theme_support( 'customize-selective-refresh-widgets' ); -} -add_action( 'after_setup_theme', 'twentytwelve_setup' ); - -/** - * Add support for a custom header image. - */ -require get_template_directory() . '/inc/custom-header.php'; - -/** - * Return the Google font stylesheet URL if available. - * - * The use of Open Sans by default is localized. For languages that use - * characters not supported by the font, the font can be disabled. - * - * @since Twenty Twelve 1.2 - * - * @return string Font stylesheet or empty string if disabled. - */ -function twentytwelve_get_font_url() { - $font_url = ''; - - /* - * translators: If there are characters in your language that are not supported - * by Open Sans, translate this to 'off'. Do not translate into your own language. - */ - if ( 'off' !== _x( 'on', 'Open Sans font: on or off', 'twentytwelve' ) ) { - $subsets = 'latin,latin-ext'; - - /* - * translators: To add an additional Open Sans character subset specific to your language, - * translate this to 'greek', 'cyrillic' or 'vietnamese'. Do not translate into your own language. - */ - $subset = _x( 'no-subset', 'Open Sans font: add new subset (greek, cyrillic, vietnamese)', 'twentytwelve' ); - - if ( 'cyrillic' == $subset ) { - $subsets .= ',cyrillic,cyrillic-ext'; - } elseif ( 'greek' == $subset ) { - $subsets .= ',greek,greek-ext'; - } elseif ( 'vietnamese' == $subset ) { - $subsets .= ',vietnamese'; - } - - $query_args = array( - 'family' => urlencode( 'Open Sans:400italic,700italic,400,700' ), - 'subset' => urlencode( $subsets ), - 'display' => urlencode( 'fallback' ), - ); - $font_url = add_query_arg( $query_args, 'https://fonts.googleapis.com/css' ); - } - - return $font_url; -} - -/** - * Enqueue scripts and styles for front end. - * - * @since Twenty Twelve 1.0 - */ -function twentytwelve_scripts_styles() { - global $wp_styles; - - /* - * Adds JavaScript to pages with the comment form to support - * sites with threaded comments (when in use). - */ - if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { - wp_enqueue_script( 'comment-reply' ); - } - - // Adds JavaScript for handling the navigation menu hide-and-show behavior. - wp_enqueue_script( 'twentytwelve-navigation', get_template_directory_uri() . '/js/navigation.js', array( 'jquery' ), '20141205', true ); - - $font_url = twentytwelve_get_font_url(); - if ( ! empty( $font_url ) ) { - wp_enqueue_style( 'twentytwelve-fonts', esc_url_raw( $font_url ), array(), null ); - } - - // Loads our main stylesheet. - wp_enqueue_style( 'twentytwelve-style', get_stylesheet_uri(), array(), '20190507' ); - - // Theme block stylesheet. - wp_enqueue_style( 'twentytwelve-block-style', get_template_directory_uri() . '/css/blocks.css', array( 'twentytwelve-style' ), '20190406' ); - - // Loads the Internet Explorer specific stylesheet. - wp_enqueue_style( 'twentytwelve-ie', get_template_directory_uri() . '/css/ie.css', array( 'twentytwelve-style' ), '20150214' ); - $wp_styles->add_data( 'twentytwelve-ie', 'conditional', 'lt IE 9' ); -} -add_action( 'wp_enqueue_scripts', 'twentytwelve_scripts_styles' ); - -/** - * Enqueue styles for the block-based editor. - * - * @since Twenty Twelve 2.6 - */ -function twentytwelve_block_editor_styles() { - // Block styles. - wp_enqueue_style( 'twentytwelve-block-editor-style', get_template_directory_uri() . '/css/editor-blocks.css', array(), '20190406' ); - // Add custom fonts. - wp_enqueue_style( 'twentytwelve-fonts', twentytwelve_get_font_url(), array(), null ); -} -add_action( 'enqueue_block_editor_assets', 'twentytwelve_block_editor_styles' ); - -/** - * Add preconnect for Google Fonts. - * - * @since Twenty Twelve 2.2 - * - * @param array $urls URLs to print for resource hints. - * @param string $relation_type The relation type the URLs are printed. - * @return array URLs to print for resource hints. - */ -function twentytwelve_resource_hints( $urls, $relation_type ) { - if ( wp_style_is( 'twentytwelve-fonts', 'queue' ) && 'preconnect' === $relation_type ) { - if ( version_compare( $GLOBALS['wp_version'], '4.7-alpha', '>=' ) ) { - $urls[] = array( - 'href' => 'https://fonts.gstatic.com', - 'crossorigin', - ); - } else { - $urls[] = 'https://fonts.gstatic.com'; - } - } - - return $urls; -} -add_filter( 'wp_resource_hints', 'twentytwelve_resource_hints', 10, 2 ); - -/** - * Filter TinyMCE CSS path to include Google Fonts. - * - * Adds additional stylesheets to the TinyMCE editor if needed. - * - * @uses twentytwelve_get_font_url() To get the Google Font stylesheet URL. - * - * @since Twenty Twelve 1.2 - * - * @param string $mce_css CSS path to load in TinyMCE. - * @return string Filtered CSS path. - */ -function twentytwelve_mce_css( $mce_css ) { - $font_url = twentytwelve_get_font_url(); - - if ( empty( $font_url ) ) { - return $mce_css; - } - - if ( ! empty( $mce_css ) ) { - $mce_css .= ','; - } - - $mce_css .= esc_url_raw( str_replace( ',', '%2C', $font_url ) ); - - return $mce_css; -} -add_filter( 'mce_css', 'twentytwelve_mce_css' ); - -/** - * Filter the page title. - * - * Creates a nicely formatted and more specific title element text - * for output in head of document, based on current view. - * - * @since Twenty Twelve 1.0 - * - * @param string $title Default title text for current view. - * @param string $sep Optional separator. - * @return string Filtered title. - */ -function twentytwelve_wp_title( $title, $sep ) { - global $paged, $page; - - 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', 'twentytwelve' ), max( $paged, $page ) ); - } - - return $title; -} -add_filter( 'wp_title', 'twentytwelve_wp_title', 10, 2 ); - -/** - * Filter the page menu arguments. - * - * Makes our wp_nav_menu() fallback -- wp_page_menu() -- show a home link. - * - * @since Twenty Twelve 1.0 - */ -function twentytwelve_page_menu_args( $args ) { - if ( ! isset( $args['show_home'] ) ) { - $args['show_home'] = true; - } - return $args; -} -add_filter( 'wp_page_menu_args', 'twentytwelve_page_menu_args' ); - -/** - * Register sidebars. - * - * Registers our main widget area and the front page widget areas. - * - * @since Twenty Twelve 1.0 - */ -function twentytwelve_widgets_init() { - register_sidebar( - array( - 'name' => __( 'Main Sidebar', 'twentytwelve' ), - 'id' => 'sidebar-1', - 'description' => __( 'Appears on posts and pages except the optional Front Page template, which has its own widgets', 'twentytwelve' ), - 'before_widget' => '<aside id="%1$s" class="widget %2$s">', - 'after_widget' => '</aside>', - 'before_title' => '<h3 class="widget-title">', - 'after_title' => '</h3>', - ) - ); - - register_sidebar( - array( - 'name' => __( 'First Front Page Widget Area', 'twentytwelve' ), - 'id' => 'sidebar-2', - 'description' => __( 'Appears when using the optional Front Page template with a page set as Static Front Page', 'twentytwelve' ), - 'before_widget' => '<aside id="%1$s" class="widget %2$s">', - 'after_widget' => '</aside>', - 'before_title' => '<h3 class="widget-title">', - 'after_title' => '</h3>', - ) - ); - - register_sidebar( - array( - 'name' => __( 'Second Front Page Widget Area', 'twentytwelve' ), - 'id' => 'sidebar-3', - 'description' => __( 'Appears when using the optional Front Page template with a page set as Static Front Page', 'twentytwelve' ), - 'before_widget' => '<aside id="%1$s" class="widget %2$s">', - 'after_widget' => '</aside>', - 'before_title' => '<h3 class="widget-title">', - 'after_title' => '</h3>', - ) - ); -} -add_action( 'widgets_init', 'twentytwelve_widgets_init' ); - -if ( ! function_exists( 'twentytwelve_content_nav' ) ) : - /** - * Displays navigation to next/previous pages when applicable. - * - * @since Twenty Twelve 1.0 - */ - function twentytwelve_content_nav( $html_id ) { - global $wp_query; - - if ( $wp_query->max_num_pages > 1 ) : ?> - <nav id="<?php echo esc_attr( $html_id ); ?>" class="navigation" role="navigation"> - <h3 class="assistive-text"><?php _e( 'Post navigation', 'twentytwelve' ); ?></h3> - <div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">←</span> Older posts', 'twentytwelve' ) ); ?></div> - <div class="nav-next"><?php previous_posts_link( __( 'Newer posts <span class="meta-nav">→</span>', 'twentytwelve' ) ); ?></div> - </nav><!-- .navigation --> - <?php - endif; - } -endif; - -if ( ! function_exists( 'twentytwelve_comment' ) ) : - /** - * Template for comments and pingbacks. - * - * To override this walker in a child theme without modifying the comments template - * simply create your own twentytwelve_comment(), and that function will be used instead. - * - * Used as a callback by wp_list_comments() for displaying the comments. - * - * @since Twenty Twelve 1.0 - */ - function twentytwelve_comment( $comment, $args, $depth ) { - $GLOBALS['comment'] = $comment; - switch ( $comment->comment_type ) : - case 'pingback': - case 'trackback': - // Display trackbacks differently than normal comments. - ?> - <li <?php comment_class(); ?> id="comment-<?php comment_ID(); ?>"> - <p><?php _e( 'Pingback:', 'twentytwelve' ); ?> <?php comment_author_link(); ?> <?php edit_comment_link( __( '(Edit)', 'twentytwelve' ), '<span class="edit-link">', '</span>' ); ?></p> - <?php - break; - default: - // Proceed with normal comments. - global $post; - ?> - <li <?php comment_class(); ?> id="li-comment-<?php comment_ID(); ?>"> - <article id="comment-<?php comment_ID(); ?>" class="comment"> - <header class="comment-meta comment-author vcard"> - <?php - echo get_avatar( $comment, 44 ); - printf( - '<cite><b class="fn">%1$s</b> %2$s</cite>', - get_comment_author_link(), - // If current post author is also comment author, make it known visually. - ( $comment->user_id === $post->post_author ) ? '<span>' . __( 'Post author', 'twentytwelve' ) . '</span>' : '' - ); - printf( - '<a href="%1$s"><time datetime="%2$s">%3$s</time></a>', - esc_url( get_comment_link( $comment->comment_ID ) ), - get_comment_time( 'c' ), - /* translators: 1: Date, 2: Time. */ - sprintf( __( '%1$s at %2$s', 'twentytwelve' ), get_comment_date(), get_comment_time() ) - ); - ?> - </header><!-- .comment-meta --> - - <?php - $commenter = wp_get_current_commenter(); - if ( $commenter['comment_author_email'] ) { - $moderation_note = __( 'Your comment is awaiting moderation.', 'twentytwelve' ); - } else { - $moderation_note = __( 'Your comment is awaiting moderation. This is a preview, your comment will be visible after it has been approved.', 'twentytwelve' ); - } - ?> - - <?php if ( '0' == $comment->comment_approved ) : ?> - <p class="comment-awaiting-moderation"><?php echo $moderation_note; ?></p> - <?php endif; ?> - - <section class="comment-content comment"> - <?php comment_text(); ?> - <?php edit_comment_link( __( 'Edit', 'twentytwelve' ), '<p class="edit-link">', '</p>' ); ?> - </section><!-- .comment-content --> - - <div class="reply"> - <?php - comment_reply_link( - array_merge( - $args, - array( - 'reply_text' => __( 'Reply', 'twentytwelve' ), - 'after' => ' <span>↓</span>', - 'depth' => $depth, - 'max_depth' => $args['max_depth'], - ) - ) - ); - ?> - </div><!-- .reply --> - </article><!-- #comment-## --> - <?php - break; - endswitch; // End comment_type check. - } -endif; - -if ( ! function_exists( 'twentytwelve_entry_meta' ) ) : - /** - * Set up post entry meta. - * - * Prints HTML with meta information for current post: categories, tags, permalink, author, and date. - * - * Create your own twentytwelve_entry_meta() to override in a child theme. - * - * @since Twenty Twelve 1.0 - */ - function twentytwelve_entry_meta() { - /* translators: Used between list items, there is a space after the comma. */ - $categories_list = get_the_category_list( __( ', ', 'twentytwelve' ) ); - - /* translators: Used between list items, there is a space after the comma. */ - $tag_list = get_the_tag_list( '', __( ', ', 'twentytwelve' ) ); - - $date = sprintf( - '<a href="%1$s" title="%2$s" rel="bookmark"><time class="entry-date" datetime="%3$s">%4$s</time></a>', - esc_url( get_permalink() ), - esc_attr( get_the_time() ), - esc_attr( get_the_date( 'c' ) ), - esc_html( get_the_date() ) - ); - - $author = sprintf( - '<span class="author vcard"><a class="url fn n" href="%1$s" title="%2$s" rel="author">%3$s</a></span>', - esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ), - /* translators: %s: Author display name. */ - esc_attr( sprintf( __( 'View all posts by %s', 'twentytwelve' ), get_the_author() ) ), - get_the_author() - ); - - if ( $tag_list ) { - /* translators: 1: Category name, 2: Tag name, 3: Date, 4: Author display name. */ - $utility_text = __( 'This entry was posted in %1$s and tagged %2$s on %3$s<span class="by-author"> by %4$s</span>.', 'twentytwelve' ); - } elseif ( $categories_list ) { - /* translators: 1: Category name, 3: Date, 4: Author display name. */ - $utility_text = __( 'This entry was posted in %1$s on %3$s<span class="by-author"> by %4$s</span>.', 'twentytwelve' ); - } else { - /* translators: 3: Date, 4: Author display name. */ - $utility_text = __( 'This entry was posted on %3$s<span class="by-author"> by %4$s</span>.', 'twentytwelve' ); - } - - printf( - $utility_text, - $categories_list, - $tag_list, - $date, - $author - ); - } -endif; - -/** - * Extend the default WordPress body classes. - * - * Extends the default WordPress body class to denote: - * 1. Using a full-width layout, when no active widgets in the sidebar - * or full-width template. - * 2. Front Page template: thumbnail in use and number of sidebars for - * widget areas. - * 3. White or empty background color to change the layout and spacing. - * 4. Custom fonts enabled. - * 5. Single or multiple authors. - * - * @since Twenty Twelve 1.0 - * - * @param array $classes Existing class values. - * @return array Filtered class values. - */ -function twentytwelve_body_class( $classes ) { - $background_color = get_background_color(); - $background_image = get_background_image(); - - if ( ! is_active_sidebar( 'sidebar-1' ) || is_page_template( 'page-templates/full-width.php' ) ) { - $classes[] = 'full-width'; - } - - if ( is_page_template( 'page-templates/front-page.php' ) ) { - $classes[] = 'template-front-page'; - if ( has_post_thumbnail() ) { - $classes[] = 'has-post-thumbnail'; - } - if ( is_active_sidebar( 'sidebar-2' ) && is_active_sidebar( 'sidebar-3' ) ) { - $classes[] = 'two-sidebars'; - } - } - - if ( empty( $background_image ) ) { - if ( empty( $background_color ) ) { - $classes[] = 'custom-background-empty'; - } elseif ( in_array( $background_color, array( 'fff', 'ffffff' ) ) ) { - $classes[] = 'custom-background-white'; - } - } - - // Enable custom font class only if the font CSS is queued to load. - if ( wp_style_is( 'twentytwelve-fonts', 'queue' ) ) { - $classes[] = 'custom-font-enabled'; - } - - if ( ! is_multi_author() ) { - $classes[] = 'single-author'; - } - - return $classes; -} -add_filter( 'body_class', 'twentytwelve_body_class' ); - -/** - * Adjust content width in certain contexts. - * - * Adjusts content_width value for full-width and single image attachment - * templates, and when there are no active widgets in the sidebar. - * - * @since Twenty Twelve 1.0 - */ -function twentytwelve_content_width() { - if ( is_page_template( 'page-templates/full-width.php' ) || is_attachment() || ! is_active_sidebar( 'sidebar-1' ) ) { - global $content_width; - $content_width = 960; - } -} -add_action( 'template_redirect', 'twentytwelve_content_width' ); - -/** - * Register postMessage support. - * - * Add postMessage support for site title and description for the Customizer. - * - * @since Twenty Twelve 1.0 - * - * @param WP_Customize_Manager $wp_customize Customizer object. - */ -function twentytwelve_customize_register( $wp_customize ) { - $wp_customize->get_setting( 'blogname' )->transport = 'postMessage'; - $wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage'; - $wp_customize->get_setting( 'header_textcolor' )->transport = 'postMessage'; - - if ( isset( $wp_customize->selective_refresh ) ) { - $wp_customize->selective_refresh->add_partial( - 'blogname', - array( - 'selector' => '.site-title > a', - 'container_inclusive' => false, - 'render_callback' => 'twentytwelve_customize_partial_blogname', - ) - ); - $wp_customize->selective_refresh->add_partial( - 'blogdescription', - array( - 'selector' => '.site-description', - 'container_inclusive' => false, - 'render_callback' => 'twentytwelve_customize_partial_blogdescription', - ) - ); - } -} -add_action( 'customize_register', 'twentytwelve_customize_register' ); - -/** - * Render the site title for the selective refresh partial. - * - * @since Twenty Twelve 2.0 - * @see twentytwelve_customize_register() - * - * @return void - */ -function twentytwelve_customize_partial_blogname() { - bloginfo( 'name' ); -} - -/** - * Render the site tagline for the selective refresh partial. - * - * @since Twenty Twelve 2.0 - * @see twentytwelve_customize_register() - * - * @return void - */ -function twentytwelve_customize_partial_blogdescription() { - bloginfo( 'description' ); -} - -/** - * Enqueue Javascript postMessage handlers for the Customizer. - * - * Binds JS handlers to make the Customizer preview reload changes asynchronously. - * - * @since Twenty Twelve 1.0 - */ -function twentytwelve_customize_preview_js() { - wp_enqueue_script( 'twentytwelve-customizer', get_template_directory_uri() . '/js/theme-customizer.js', array( 'customize-preview' ), '20141120', true ); -} -add_action( 'customize_preview_init', 'twentytwelve_customize_preview_js' ); - -/** - * Modifies tag cloud widget arguments to display all tags in the same font size - * and use list format for better accessibility. - * - * @since Twenty Twelve 2.4 - * - * @param array $args Arguments for tag cloud widget. - * @return array The filtered arguments for tag cloud widget. - */ -function twentytwelve_widget_tag_cloud_args( $args ) { - $args['largest'] = 22; - $args['smallest'] = 8; - $args['unit'] = 'pt'; - $args['format'] = 'list'; - - return $args; -} -add_filter( 'widget_tag_cloud_args', 'twentytwelve_widget_tag_cloud_args' ); - -if ( ! function_exists( 'wp_body_open' ) ) : - /** - * Fire the wp_body_open action. - * - * Added for backward compatibility to support pre-5.2.0 WordPress versions. - * - * @since Twenty Twelve 3.0 - */ - function wp_body_open() { - /** - * Triggered after the opening <body> tag. - * - * @since Twenty Twelve 3.0 - */ - do_action( 'wp_body_open' ); - } -endif; +<?php +/** + * Twenty Twelve functions and definitions + * + * Sets up the theme and provides some helper functions, which are used + * in the theme as custom template tags. Others are attached to action and + * filter hooks in WordPress to change core functionality. + * + * 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_Twelve + * @since Twenty Twelve 1.0 + */ + +// Set up the content width value based on the theme's design and stylesheet. +if ( ! isset( $content_width ) ) { + $content_width = 625; +} + +/** + * Twenty Twelve setup. + * + * Sets up theme defaults and registers the various WordPress features that + * Twenty Twelve supports. + * + * @uses load_theme_textdomain() For translation/localization support. + * @uses add_editor_style() To add a Visual Editor stylesheet. + * @uses add_theme_support() To add support for post thumbnails, automatic feed links, + * custom background, and post formats. + * @uses register_nav_menu() To add support for navigation menus. + * @uses set_post_thumbnail_size() To set a custom post thumbnail size. + * + * @since Twenty Twelve 1.0 + */ +function twentytwelve_setup() { + /* + * Makes Twenty Twelve available for translation. + * + * Translations can be filed at WordPress.org. See: https://translate.wordpress.org/projects/wp-themes/twentytwelve + * If you're building a theme based on Twenty Twelve, use a find and replace + * to change 'twentytwelve' to the name of your theme in all the template files. + */ + load_theme_textdomain( 'twentytwelve' ); + + // This theme styles the visual editor with editor-style.css to match the theme style. + add_editor_style(); + + // 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' => __( 'Blue', 'twentytwelve' ), + 'slug' => 'blue', + 'color' => '#21759b', + ), + array( + 'name' => __( 'Dark Gray', 'twentytwelve' ), + 'slug' => 'dark-gray', + 'color' => '#444', + ), + array( + 'name' => __( 'Medium Gray', 'twentytwelve' ), + 'slug' => 'medium-gray', + 'color' => '#9f9f9f', + ), + array( + 'name' => __( 'Light Gray', 'twentytwelve' ), + 'slug' => 'light-gray', + 'color' => '#e6e6e6', + ), + array( + 'name' => __( 'White', 'twentytwelve' ), + 'slug' => 'white', + 'color' => '#fff', + ), + ) + ); + + // Adds RSS feed links to <head> for posts and comments. + add_theme_support( 'automatic-feed-links' ); + + // This theme supports a variety of post formats. + add_theme_support( 'post-formats', array( 'aside', 'image', 'link', 'quote', 'status' ) ); + + // This theme uses wp_nav_menu() in one location. + register_nav_menu( 'primary', __( 'Primary Menu', 'twentytwelve' ) ); + + /* + * This theme supports custom background color and image, + * and here we also set up the default background color. + */ + add_theme_support( + 'custom-background', + array( + 'default-color' => 'e6e6e6', + ) + ); + + // This theme uses a custom image size for featured images, displayed on "standard" posts. + add_theme_support( 'post-thumbnails' ); + set_post_thumbnail_size( 624, 9999 ); // Unlimited height, soft crop. + + // Indicate widget sidebars can use selective refresh in the Customizer. + add_theme_support( 'customize-selective-refresh-widgets' ); +} +add_action( 'after_setup_theme', 'twentytwelve_setup' ); + +/** + * Add support for a custom header image. + */ +require get_template_directory() . '/inc/custom-header.php'; + +/** + * Return the Google font stylesheet URL if available. + * + * The use of Open Sans by default is localized. For languages that use + * characters not supported by the font, the font can be disabled. + * + * @since Twenty Twelve 1.2 + * + * @return string Font stylesheet or empty string if disabled. + */ +function twentytwelve_get_font_url() { + $font_url = ''; + + /* AI fix - REMOVED GoogleApis*/ + + return $font_url; +} + +/** + * Enqueue scripts and styles for front end. + * + * @since Twenty Twelve 1.0 + */ +function twentytwelve_scripts_styles() { + global $wp_styles; + + /* + * Adds JavaScript to pages with the comment form to support + * sites with threaded comments (when in use). + */ + if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { + wp_enqueue_script( 'comment-reply' ); + } + + // Adds JavaScript for handling the navigation menu hide-and-show behavior. + wp_enqueue_script( 'twentytwelve-navigation', get_template_directory_uri() . '/js/navigation.js', array( 'jquery' ), '20141205', true ); + + $font_url = twentytwelve_get_font_url(); + if ( ! empty( $font_url ) ) { + wp_enqueue_style( 'twentytwelve-fonts', esc_url_raw( $font_url ), array(), null ); + } + + // Loads our main stylesheet. + wp_enqueue_style( 'twentytwelve-style', get_stylesheet_uri(), array(), '20190507' ); + + // Theme block stylesheet. + wp_enqueue_style( 'twentytwelve-block-style', get_template_directory_uri() . '/css/blocks.css', array( 'twentytwelve-style' ), '20190406' ); + + // Loads the Internet Explorer specific stylesheet. + wp_enqueue_style( 'twentytwelve-ie', get_template_directory_uri() . '/css/ie.css', array( 'twentytwelve-style' ), '20150214' ); + $wp_styles->add_data( 'twentytwelve-ie', 'conditional', 'lt IE 9' ); +} +add_action( 'wp_enqueue_scripts', 'twentytwelve_scripts_styles' ); + +/** + * Enqueue styles for the block-based editor. + * + * @since Twenty Twelve 2.6 + */ +function twentytwelve_block_editor_styles() { + // Block styles. + wp_enqueue_style( 'twentytwelve-block-editor-style', get_template_directory_uri() . '/css/editor-blocks.css', array(), '20190406' ); + // Add custom fonts. + wp_enqueue_style( 'twentytwelve-fonts', twentytwelve_get_font_url(), array(), null ); +} +add_action( 'enqueue_block_editor_assets', 'twentytwelve_block_editor_styles' ); + +/** + * Add preconnect for Google Fonts. + * + * @since Twenty Twelve 2.2 + * + * @param array $urls URLs to print for resource hints. + * @param string $relation_type The relation type the URLs are printed. + * @return array URLs to print for resource hints. + */ +function twentytwelve_resource_hints( $urls, $relation_type ) { + if ( wp_style_is( 'twentytwelve-fonts', 'queue' ) && 'preconnect' === $relation_type ) { + if ( version_compare( $GLOBALS['wp_version'], '4.7-alpha', '>=' ) ) { + $urls[] = array( + 'href' => '', + 'crossorigin', + ); + } else { + $urls[] = ''; + /*AI fix - font google*/ + } + } + + return $urls; +} +add_filter( 'wp_resource_hints', 'twentytwelve_resource_hints', 10, 2 ); + +/** + * Filter TinyMCE CSS path to include Google Fonts. + * + * Adds additional stylesheets to the TinyMCE editor if needed. + * + * @uses twentytwelve_get_font_url() To get the Google Font stylesheet URL. + * + * @since Twenty Twelve 1.2 + * + * @param string $mce_css CSS path to load in TinyMCE. + * @return string Filtered CSS path. + */ +function twentytwelve_mce_css( $mce_css ) { + $font_url = twentytwelve_get_font_url(); + + if ( empty( $font_url ) ) { + return $mce_css; + } + + if ( ! empty( $mce_css ) ) { + $mce_css .= ','; + } + + $mce_css .= esc_url_raw( str_replace( ',', '%2C', $font_url ) ); + + return $mce_css; +} +add_filter( 'mce_css', 'twentytwelve_mce_css' ); + +/** + * Filter the page title. + * + * Creates a nicely formatted and more specific title element text + * for output in head of document, based on current view. + * + * @since Twenty Twelve 1.0 + * + * @param string $title Default title text for current view. + * @param string $sep Optional separator. + * @return string Filtered title. + */ +function twentytwelve_wp_title( $title, $sep ) { + global $paged, $page; + + 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', 'twentytwelve' ), max( $paged, $page ) ); + } + + return $title; +} +add_filter( 'wp_title', 'twentytwelve_wp_title', 10, 2 ); + +/** + * Filter the page menu arguments. + * + * Makes our wp_nav_menu() fallback -- wp_page_menu() -- show a home link. + * + * @since Twenty Twelve 1.0 + */ +function twentytwelve_page_menu_args( $args ) { + if ( ! isset( $args['show_home'] ) ) { + $args['show_home'] = true; + } + return $args; +} +add_filter( 'wp_page_menu_args', 'twentytwelve_page_menu_args' ); + +/** + * Register sidebars. + * + * Registers our main widget area and the front page widget areas. + * + * @since Twenty Twelve 1.0 + */ +function twentytwelve_widgets_init() { + register_sidebar( + array( + 'name' => __( 'Main Sidebar', 'twentytwelve' ), + 'id' => 'sidebar-1', + 'description' => __( 'Appears on posts and pages except the optional Front Page template, which has its own widgets', 'twentytwelve' ), + 'before_widget' => '<aside id="%1$s" class="widget %2$s">', + 'after_widget' => '</aside>', + 'before_title' => '<h3 class="widget-title">', + 'after_title' => '</h3>', + ) + ); + + register_sidebar( + array( + 'name' => __( 'First Front Page Widget Area', 'twentytwelve' ), + 'id' => 'sidebar-2', + 'description' => __( 'Appears when using the optional Front Page template with a page set as Static Front Page', 'twentytwelve' ), + 'before_widget' => '<aside id="%1$s" class="widget %2$s">', + 'after_widget' => '</aside>', + 'before_title' => '<h3 class="widget-title">', + 'after_title' => '</h3>', + ) + ); + + register_sidebar( + array( + 'name' => __( 'Second Front Page Widget Area', 'twentytwelve' ), + 'id' => 'sidebar-3', + 'description' => __( 'Appears when using the optional Front Page template with a page set as Static Front Page', 'twentytwelve' ), + 'before_widget' => '<aside id="%1$s" class="widget %2$s">', + 'after_widget' => '</aside>', + 'before_title' => '<h3 class="widget-title">', + 'after_title' => '</h3>', + ) + ); +} +add_action( 'widgets_init', 'twentytwelve_widgets_init' ); + +if ( ! function_exists( 'twentytwelve_content_nav' ) ) : + /** + * Displays navigation to next/previous pages when applicable. + * + * @since Twenty Twelve 1.0 + */ + function twentytwelve_content_nav( $html_id ) { + global $wp_query; + + if ( $wp_query->max_num_pages > 1 ) : ?> + <nav id="<?php echo esc_attr( $html_id ); ?>" class="navigation" role="navigation"> + <h3 class="assistive-text"><?php _e( 'Post navigation', 'twentytwelve' ); ?></h3> + <div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">←</span> Older posts', 'twentytwelve' ) ); ?></div> + <div class="nav-next"><?php previous_posts_link( __( 'Newer posts <span class="meta-nav">→</span>', 'twentytwelve' ) ); ?></div> + </nav><!-- .navigation --> + <?php + endif; + } +endif; + +if ( ! function_exists( 'twentytwelve_comment' ) ) : + /** + * Template for comments and pingbacks. + * + * To override this walker in a child theme without modifying the comments template + * simply create your own twentytwelve_comment(), and that function will be used instead. + * + * Used as a callback by wp_list_comments() for displaying the comments. + * + * @since Twenty Twelve 1.0 + */ + function twentytwelve_comment( $comment, $args, $depth ) { + $GLOBALS['comment'] = $comment; + switch ( $comment->comment_type ) : + case 'pingback': + case 'trackback': + // Display trackbacks differently than normal comments. + ?> + <li <?php comment_class(); ?> id="comment-<?php comment_ID(); ?>"> + <p><?php _e( 'Pingback:', 'twentytwelve' ); ?> <?php comment_author_link(); ?> <?php edit_comment_link( __( '(Edit)', 'twentytwelve' ), '<span class="edit-link">', '</span>' ); ?></p> + <?php + break; + default: + // Proceed with normal comments. + global $post; + ?> + <li <?php comment_class(); ?> id="li-comment-<?php comment_ID(); ?>"> + <article id="comment-<?php comment_ID(); ?>" class="comment"> + <header class="comment-meta comment-author vcard"> + <?php + echo get_avatar( $comment, 44 ); + printf( + '<cite><b class="fn">%1$s</b> %2$s</cite>', + get_comment_author_link(), + // If current post author is also comment author, make it known visually. + ( $comment->user_id === $post->post_author ) ? '<span>' . __( 'Post author', 'twentytwelve' ) . '</span>' : '' + ); + printf( + '<a href="%1$s"><time datetime="%2$s">%3$s</time></a>', + esc_url( get_comment_link( $comment->comment_ID ) ), + get_comment_time( 'c' ), + /* translators: 1: Date, 2: Time. */ + sprintf( __( '%1$s at %2$s', 'twentytwelve' ), get_comment_date(), get_comment_time() ) + ); + ?> + </header><!-- .comment-meta --> + + <?php + $commenter = wp_get_current_commenter(); + if ( $commenter['comment_author_email'] ) { + $moderation_note = __( 'Your comment is awaiting moderation.', 'twentytwelve' ); + } else { + $moderation_note = __( 'Your comment is awaiting moderation. This is a preview, your comment will be visible after it has been approved.', 'twentytwelve' ); + } + ?> + + <?php if ( '0' == $comment->comment_approved ) : ?> + <p class="comment-awaiting-moderation"><?php echo $moderation_note; ?></p> + <?php endif; ?> + + <section class="comment-content comment"> + <?php comment_text(); ?> + <?php edit_comment_link( __( 'Edit', 'twentytwelve' ), '<p class="edit-link">', '</p>' ); ?> + </section><!-- .comment-content --> + + <div class="reply"> + <?php + comment_reply_link( + array_merge( + $args, + array( + 'reply_text' => __( 'Reply', 'twentytwelve' ), + 'after' => ' <span>↓</span>', + 'depth' => $depth, + 'max_depth' => $args['max_depth'], + ) + ) + ); + ?> + </div><!-- .reply --> + </article><!-- #comment-## --> + <?php + break; + endswitch; // End comment_type check. + } +endif; + +if ( ! function_exists( 'twentytwelve_entry_meta' ) ) : + /** + * Set up post entry meta. + * + * Prints HTML with meta information for current post: categories, tags, permalink, author, and date. + * + * Create your own twentytwelve_entry_meta() to override in a child theme. + * + * @since Twenty Twelve 1.0 + */ + function twentytwelve_entry_meta() { + /* translators: Used between list items, there is a space after the comma. */ + $categories_list = get_the_category_list( __( ', ', 'twentytwelve' ) ); + + /* translators: Used between list items, there is a space after the comma. */ + $tag_list = get_the_tag_list( '', __( ', ', 'twentytwelve' ) ); + + $date = sprintf( + '<a href="%1$s" title="%2$s" rel="bookmark"><time class="entry-date" datetime="%3$s">%4$s</time></a>', + esc_url( get_permalink() ), + esc_attr( get_the_time() ), + esc_attr( get_the_date( 'c' ) ), + esc_html( get_the_date() ) + ); + + $author = sprintf( + '<span class="author vcard"><a class="url fn n" href="%1$s" title="%2$s" rel="author">%3$s</a></span>', + esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ), + /* translators: %s: Author display name. */ + esc_attr( sprintf( __( 'View all posts by %s', 'twentytwelve' ), get_the_author() ) ), + get_the_author() + ); + + // Translators: 1 is category, 2 is tag, 3 is the date and 4 is the author's name. + if ( $tag_list ) { + /* translators: 1: Category name, 2: Tag name, 3: Date, 4: Author display name. */ + $utility_text = __( 'This entry was posted in %1$s and tagged %2$s on %3$s<span class="by-author"> by %4$s</span>.', 'twentytwelve' ); + } elseif ( $categories_list ) { + /* translators: 1: Category name, 3: Date, 4: Author display name. */ + $utility_text = __( 'This entry was posted in %1$s on %3$s<span class="by-author"> by %4$s</span>.', 'twentytwelve' ); + } else { + /* translators: 3: Date, 4: Author display name. */ + $utility_text = __( 'This entry was posted on %3$s<span class="by-author"> by %4$s</span>.', 'twentytwelve' ); + } + + printf( + $utility_text, + $categories_list, + $tag_list, + $date, + $author + ); + } +endif; + +/** + * Extend the default WordPress body classes. + * + * Extends the default WordPress body class to denote: + * 1. Using a full-width layout, when no active widgets in the sidebar + * or full-width template. + * 2. Front Page template: thumbnail in use and number of sidebars for + * widget areas. + * 3. White or empty background color to change the layout and spacing. + * 4. Custom fonts enabled. + * 5. Single or multiple authors. + * + * @since Twenty Twelve 1.0 + * + * @param array $classes Existing class values. + * @return array Filtered class values. + */ +function twentytwelve_body_class( $classes ) { + $background_color = get_background_color(); + $background_image = get_background_image(); + + if ( ! is_active_sidebar( 'sidebar-1' ) || is_page_template( 'page-templates/full-width.php' ) ) { + $classes[] = 'full-width'; + } + + if ( is_page_template( 'page-templates/front-page.php' ) ) { + $classes[] = 'template-front-page'; + if ( has_post_thumbnail() ) { + $classes[] = 'has-post-thumbnail'; + } + if ( is_active_sidebar( 'sidebar-2' ) && is_active_sidebar( 'sidebar-3' ) ) { + $classes[] = 'two-sidebars'; + } + } + + if ( empty( $background_image ) ) { + if ( empty( $background_color ) ) { + $classes[] = 'custom-background-empty'; + } elseif ( in_array( $background_color, array( 'fff', 'ffffff' ) ) ) { + $classes[] = 'custom-background-white'; + } + } + + // Enable custom font class only if the font CSS is queued to load. + if ( wp_style_is( 'twentytwelve-fonts', 'queue' ) ) { + $classes[] = 'custom-font-enabled'; + } + + if ( ! is_multi_author() ) { + $classes[] = 'single-author'; + } + + return $classes; +} +add_filter( 'body_class', 'twentytwelve_body_class' ); + +/** + * Adjust content width in certain contexts. + * + * Adjusts content_width value for full-width and single image attachment + * templates, and when there are no active widgets in the sidebar. + * + * @since Twenty Twelve 1.0 + */ +function twentytwelve_content_width() { + if ( is_page_template( 'page-templates/full-width.php' ) || is_attachment() || ! is_active_sidebar( 'sidebar-1' ) ) { + global $content_width; + $content_width = 960; + } +} +add_action( 'template_redirect', 'twentytwelve_content_width' ); + +/** + * Register postMessage support. + * + * Add postMessage support for site title and description for the Customizer. + * + * @since Twenty Twelve 1.0 + * + * @param WP_Customize_Manager $wp_customize Customizer object. + */ +function twentytwelve_customize_register( $wp_customize ) { + $wp_customize->get_setting( 'blogname' )->transport = 'postMessage'; + $wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage'; + $wp_customize->get_setting( 'header_textcolor' )->transport = 'postMessage'; + + if ( isset( $wp_customize->selective_refresh ) ) { + $wp_customize->selective_refresh->add_partial( + 'blogname', + array( + 'selector' => '.site-title > a', + 'container_inclusive' => false, + 'render_callback' => 'twentytwelve_customize_partial_blogname', + ) + ); + $wp_customize->selective_refresh->add_partial( + 'blogdescription', + array( + 'selector' => '.site-description', + 'container_inclusive' => false, + 'render_callback' => 'twentytwelve_customize_partial_blogdescription', + ) + ); + } +} +add_action( 'customize_register', 'twentytwelve_customize_register' ); + +/** + * Render the site title for the selective refresh partial. + * + * @since Twenty Twelve 2.0 + * @see twentytwelve_customize_register() + * + * @return void + */ +function twentytwelve_customize_partial_blogname() { + bloginfo( 'name' ); +} + +/** + * Render the site tagline for the selective refresh partial. + * + * @since Twenty Twelve 2.0 + * @see twentytwelve_customize_register() + * + * @return void + */ +function twentytwelve_customize_partial_blogdescription() { + bloginfo( 'description' ); +} + +/** + * Enqueue Javascript postMessage handlers for the Customizer. + * + * Binds JS handlers to make the Customizer preview reload changes asynchronously. + * + * @since Twenty Twelve 1.0 + */ +function twentytwelve_customize_preview_js() { + wp_enqueue_script( 'twentytwelve-customizer', get_template_directory_uri() . '/js/theme-customizer.js', array( 'customize-preview' ), '20141120', true ); +} +add_action( 'customize_preview_init', 'twentytwelve_customize_preview_js' ); + +/** + * Modifies tag cloud widget arguments to display all tags in the same font size + * and use list format for better accessibility. + * + * @since Twenty Twelve 2.4 + * + * @param array $args Arguments for tag cloud widget. + * @return array The filtered arguments for tag cloud widget. + */ +function twentytwelve_widget_tag_cloud_args( $args ) { + $args['largest'] = 22; + $args['smallest'] = 8; + $args['unit'] = 'pt'; + $args['format'] = 'list'; + + return $args; +} +add_filter( 'widget_tag_cloud_args', 'twentytwelve_widget_tag_cloud_args' ); + +if ( ! function_exists( 'wp_body_open' ) ) : + /** + * Fire the wp_body_open action. + * + * Added for backwards compatibility to support pre 5.2.0 WordPress versions. + * + * @since Twenty Twelve 3.0 + */ + function wp_body_open() { + /** + * Triggered after the opening <body> tag. + * + * @since Twenty Twelve 3.0 + */ + do_action( 'wp_body_open' ); + } +endif; diff --git a/wp-includes/script-loader.php b/wp-includes/script-loader.php index 856315d4119d93cf2e225430fe509ca86f8736ca..b98c0f46780525c4ecbdde848627c315be63d1aa 100644 --- a/wp-includes/script-loader.php +++ b/wp-includes/script-loader.php @@ -950,7 +950,8 @@ function wp_default_scripts( $scripts ) { 'language' => strtolower( strtok( determine_locale(), '_-' ) ), 'strings' => array( 'mejs.download-file' => __( 'Download File' ), - 'mejs.install-flash' => __( 'You are using a browser that does not have Flash player enabled or installed. Please turn on your Flash player plugin or download the latest version from https://get.adobe.com/flashplayer/' ), + // A/I removed flash player + /*'mejs.install-flash' => __( 'You are using a browser that does not have Flash player enabled or installed. Please turn on your Flash player plugin or download the latest version from https://get.adobe.com/flashplayer/' ),*/ 'mejs.fullscreen' => __( 'Fullscreen' ), 'mejs.play' => __( 'Play' ), 'mejs.pause' => __( 'Pause' ), @@ -1424,8 +1425,9 @@ function wp_default_styles( $styles ) { $subsets .= ',vietnamese'; } + // A/I removed google font // Hotlink Open Sans, for now. - $open_sans_font_url = "https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,300,400,600&subset=$subsets&display=fallback"; + $open_sans_font_url = ""; } // Register a stylesheet for the selected admin color scheme. @@ -1499,7 +1501,8 @@ function wp_default_styles( $styles ) { */ $font_family = _x( 'Noto Serif:400,400i,700,700i', 'Google Font Name and Variants' ); if ( 'off' !== $font_family ) { - $fonts_url = 'https://fonts.googleapis.com/css?family=' . urlencode( $font_family ); + // A/I removed google font + $fonts_url = '' . urlencode( $font_family ); } $styles->add( 'wp-editor-font', $fonts_url ); // No longer used in core as of 5.7.