Child theme setup
Signed-off-by: Jeff <jeff@gotenzing.com>
Showing
30 changed files
with
1168 additions
and
1 deletions
| 1 | <?php | ||
| 2 | /** | ||
| 3 | * The template for displaying the footer | ||
| 4 | * | ||
| 5 | * Contains the closing of the #content div and all content after | ||
| 6 | * | ||
| 7 | * @package Understrap | ||
| 8 | */ | ||
| 9 | |||
| 10 | // Exit if accessed directly. | ||
| 11 | defined( 'ABSPATH' ) || exit; | ||
| 12 | |||
| 13 | $container = get_theme_mod( 'understrap_container_type' ); | ||
| 14 | ?> | ||
| 15 | |||
| 16 | <?php get_template_part( 'sidebar-templates/sidebar', 'footerfull' ); ?> | ||
| 17 | |||
| 18 | <div class="wrapper" id="wrapper-footer"> | ||
| 19 | |||
| 20 | <div class="<?php echo esc_attr( $container ); ?>"> | ||
| 21 | |||
| 22 | <div class="row"> | ||
| 23 | |||
| 24 | <div class="col-md-12"> | ||
| 25 | |||
| 26 | <footer class="site-footer" id="colophon"> | ||
| 27 | |||
| 28 | <div class="site-info"> | ||
| 29 | |||
| 30 | <?php understrap_site_info(); ?> | ||
| 31 | |||
| 32 | </div><!-- .site-info --> | ||
| 33 | |||
| 34 | </footer><!-- #colophon --> | ||
| 35 | |||
| 36 | </div><!-- col --> | ||
| 37 | |||
| 38 | </div><!-- .row --> | ||
| 39 | |||
| 40 | </div><!-- .container(-fluid) --> | ||
| 41 | |||
| 42 | </div><!-- #wrapper-footer --> | ||
| 43 | |||
| 44 | <?php // Closing div#page from header.php. ?> | ||
| 45 | </div><!-- #page --> | ||
| 46 | |||
| 47 | <?php wp_footer(); ?> | ||
| 48 | |||
| 49 | </body> | ||
| 50 | |||
| 51 | </html> | ||
| 52 |
| ... | @@ -9,7 +9,7 @@ | ... | @@ -9,7 +9,7 @@ |
| 9 | defined( 'ABSPATH' ) || exit; | 9 | defined( 'ABSPATH' ) || exit; |
| 10 | 10 | ||
| 11 | 11 | ||
| 12 | 12 | require_once __DIR__.'/inc/inc.php'; | |
| 13 | /** | 13 | /** |
| 14 | * Removes the parent themes stylesheet and scripts from inc/enqueue.php | 14 | * Removes the parent themes stylesheet and scripts from inc/enqueue.php |
| 15 | */ | 15 | */ | ... | ... |
| 1 | <?php | ||
| 2 | /** | ||
| 3 | * Hero setup | ||
| 4 | * | ||
| 5 | * @package Understrap | ||
| 6 | */ | ||
| 7 | |||
| 8 | // Exit if accessed directly. | ||
| 9 | defined( 'ABSPATH' ) || exit; | ||
| 10 | |||
| 11 | if ( is_active_sidebar( 'hero' ) || is_active_sidebar( 'statichero' ) || is_active_sidebar( 'herocanvas' ) ) : | ||
| 12 | ?> | ||
| 13 | |||
| 14 | <div class="wrapper" id="wrapper-hero"> | ||
| 15 | |||
| 16 | <?php | ||
| 17 | get_template_part( 'sidebar-templates/sidebar', 'hero' ); | ||
| 18 | get_template_part( 'sidebar-templates/sidebar', 'herocanvas' ); | ||
| 19 | get_template_part( 'sidebar-templates/sidebar', 'statichero' ); | ||
| 20 | ?> | ||
| 21 | |||
| 22 | </div> | ||
| 23 | |||
| 24 | <?php | ||
| 25 | endif; |
| 1 | <?php | ||
| 2 | /** | ||
| 3 | * Left sidebar check | ||
| 4 | * | ||
| 5 | * @package Understrap | ||
| 6 | */ | ||
| 7 | |||
| 8 | // Exit if accessed directly. | ||
| 9 | defined( 'ABSPATH' ) || exit; | ||
| 10 | |||
| 11 | $sidebar_pos = get_theme_mod( 'understrap_sidebar_position' ); | ||
| 12 | |||
| 13 | if ( 'left' === $sidebar_pos || 'both' === $sidebar_pos ) { | ||
| 14 | get_template_part( 'sidebar-templates/sidebar', 'left' ); | ||
| 15 | } | ||
| 16 | ?> | ||
| 17 | |||
| 18 | <div class="col-md content-area" id="primary"> |
| 1 | <?php | ||
| 2 | /** | ||
| 3 | * Navbar branding | ||
| 4 | * | ||
| 5 | * @package Understrap | ||
| 6 | * @since 1.2.0 | ||
| 7 | */ | ||
| 8 | |||
| 9 | // Exit if accessed directly. | ||
| 10 | defined( 'ABSPATH' ) || exit; | ||
| 11 | |||
| 12 | if ( ! has_custom_logo() ) { ?> | ||
| 13 | |||
| 14 | <?php if ( is_front_page() && is_home() ) : ?> | ||
| 15 | |||
| 16 | <h1 class="navbar-brand mb-0"> | ||
| 17 | <a rel="home" href="<?php echo esc_url( home_url( '/' ) ); ?>" itemprop="url"> | ||
| 18 | <?php bloginfo( 'name' ); ?> | ||
| 19 | </a> | ||
| 20 | </h1> | ||
| 21 | |||
| 22 | <?php else : ?> | ||
| 23 | |||
| 24 | <a class="navbar-brand" rel="home" href="<?php echo esc_url( home_url( '/' ) ); ?>" itemprop="url"> | ||
| 25 | <?php bloginfo( 'name' ); ?> | ||
| 26 | </a> | ||
| 27 | |||
| 28 | <?php endif; ?> | ||
| 29 | |||
| 30 | <?php | ||
| 31 | } else { | ||
| 32 | the_custom_logo(); | ||
| 33 | } |
| 1 | <?php | ||
| 2 | /** | ||
| 3 | * Header Navbar (bootstrap4) | ||
| 4 | * | ||
| 5 | * @package Understrap | ||
| 6 | * @since 1.1.0 | ||
| 7 | */ | ||
| 8 | |||
| 9 | // Exit if accessed directly. | ||
| 10 | defined( 'ABSPATH' ) || exit; | ||
| 11 | |||
| 12 | $container = get_theme_mod( 'understrap_container_type' ); | ||
| 13 | ?> | ||
| 14 | |||
| 15 | <nav id="main-nav" class="navbar navbar-expand-md navbar-dark bg-primary" aria-labelledby="main-nav-label"> | ||
| 16 | |||
| 17 | <h2 id="main-nav-label" class="screen-reader-text"> | ||
| 18 | <?php esc_html_e( 'Main Navigation', 'understrap' ); ?> | ||
| 19 | </h2> | ||
| 20 | |||
| 21 | |||
| 22 | <?php if ( 'container' === $container ) : ?> | ||
| 23 | <div class="container"> | ||
| 24 | <?php endif; ?> | ||
| 25 | |||
| 26 | <?php get_template_part( 'global-templates/navbar-branding' ); ?> | ||
| 27 | |||
| 28 | <button | ||
| 29 | class="navbar-toggler" | ||
| 30 | type="button" | ||
| 31 | data-toggle="collapse" | ||
| 32 | data-target="#navbarNavDropdown" | ||
| 33 | aria-controls="navbarNavDropdown" | ||
| 34 | aria-expanded="false" | ||
| 35 | aria-label="<?php esc_attr_e( 'Toggle navigation', 'understrap' ); ?>" | ||
| 36 | > | ||
| 37 | <span class="navbar-toggler-icon"></span> | ||
| 38 | </button> | ||
| 39 | |||
| 40 | <!-- The WordPress Menu goes here --> | ||
| 41 | <?php | ||
| 42 | wp_nav_menu( | ||
| 43 | array( | ||
| 44 | 'theme_location' => 'primary', | ||
| 45 | 'container_class' => 'collapse navbar-collapse', | ||
| 46 | 'container_id' => 'navbarNavDropdown', | ||
| 47 | 'menu_class' => 'navbar-nav ml-auto', | ||
| 48 | 'fallback_cb' => '', | ||
| 49 | 'menu_id' => 'main-menu', | ||
| 50 | 'depth' => 2, | ||
| 51 | 'walker' => new Understrap_WP_Bootstrap_Navwalker(), | ||
| 52 | ) | ||
| 53 | ); | ||
| 54 | ?> | ||
| 55 | |||
| 56 | <?php if ( 'container' === $container ) : ?> | ||
| 57 | </div><!-- .container --> | ||
| 58 | <?php endif; ?> | ||
| 59 | |||
| 60 | </nav><!-- #main-nav --> |
| 1 | <?php | ||
| 2 | /** | ||
| 3 | * Header Navbar (bootstrap5) | ||
| 4 | * | ||
| 5 | * @package Understrap | ||
| 6 | * @since 1.1.0 | ||
| 7 | */ | ||
| 8 | |||
| 9 | // Exit if accessed directly. | ||
| 10 | defined( 'ABSPATH' ) || exit; | ||
| 11 | |||
| 12 | $container = get_theme_mod( 'understrap_container_type' ); | ||
| 13 | ?> | ||
| 14 | |||
| 15 | <nav id="main-nav" class="navbar navbar-expand-md navbar-dark bg-primary" aria-labelledby="main-nav-label"> | ||
| 16 | |||
| 17 | <h2 id="main-nav-label" class="screen-reader-text"> | ||
| 18 | <?php esc_html_e( 'Main Navigation', 'understrap' ); ?> | ||
| 19 | </h2> | ||
| 20 | |||
| 21 | |||
| 22 | <div class="<?php echo esc_attr( $container ); ?>"> | ||
| 23 | |||
| 24 | <!-- Your site branding in the menu --> | ||
| 25 | <?php get_template_part( 'global-templates/navbar-branding' ); ?> | ||
| 26 | |||
| 27 | <button | ||
| 28 | class="navbar-toggler" | ||
| 29 | type="button" | ||
| 30 | data-bs-toggle="collapse" | ||
| 31 | data-bs-target="#navbarNavDropdown" | ||
| 32 | aria-controls="navbarNavDropdown" | ||
| 33 | aria-expanded="false" | ||
| 34 | aria-label="<?php esc_attr_e( 'Toggle navigation', 'understrap' ); ?>" | ||
| 35 | > | ||
| 36 | <span class="navbar-toggler-icon"></span> | ||
| 37 | </button> | ||
| 38 | |||
| 39 | <!-- The WordPress Menu goes here --> | ||
| 40 | <?php | ||
| 41 | wp_nav_menu( | ||
| 42 | array( | ||
| 43 | 'theme_location' => 'primary', | ||
| 44 | 'container_class' => 'collapse navbar-collapse', | ||
| 45 | 'container_id' => 'navbarNavDropdown', | ||
| 46 | 'menu_class' => 'navbar-nav ms-auto', | ||
| 47 | 'fallback_cb' => '', | ||
| 48 | 'menu_id' => 'main-menu', | ||
| 49 | 'depth' => 2, | ||
| 50 | 'walker' => new Understrap_WP_Bootstrap_Navwalker(), | ||
| 51 | ) | ||
| 52 | ); | ||
| 53 | ?> | ||
| 54 | |||
| 55 | </div><!-- .container(-fluid) --> | ||
| 56 | |||
| 57 | </nav><!-- #main-nav --> |
| 1 | <?php | ||
| 2 | /** | ||
| 3 | * Header Navbar (bootstrap5) | ||
| 4 | * | ||
| 5 | * @package Understrap | ||
| 6 | * @since 1.1.0 | ||
| 7 | */ | ||
| 8 | |||
| 9 | // Exit if accessed directly. | ||
| 10 | defined( 'ABSPATH' ) || exit; | ||
| 11 | |||
| 12 | $container = get_theme_mod( 'understrap_container_type' ); | ||
| 13 | ?> | ||
| 14 | |||
| 15 | <nav id="main-nav" class="navbar navbar-expand-md navbar-dark bg-primary" aria-labelledby="main-nav-label"> | ||
| 16 | |||
| 17 | <h2 id="main-nav-label" class="screen-reader-text"> | ||
| 18 | <?php esc_html_e( 'Main Navigation', 'understrap' ); ?> | ||
| 19 | </h2> | ||
| 20 | |||
| 21 | |||
| 22 | <div class="<?php echo esc_attr( $container ); ?>"> | ||
| 23 | |||
| 24 | <!-- Your site branding in the menu --> | ||
| 25 | <?php get_template_part( 'global-templates/navbar-branding' ); ?> | ||
| 26 | |||
| 27 | <button | ||
| 28 | class="navbar-toggler" | ||
| 29 | type="button" | ||
| 30 | data-bs-toggle="offcanvas" | ||
| 31 | data-bs-target="#navbarNavOffcanvas" | ||
| 32 | aria-controls="navbarNavOffcanvas" | ||
| 33 | aria-expanded="false" | ||
| 34 | aria-label="<?php esc_attr_e( 'Open menu', 'understrap' ); ?>" | ||
| 35 | > | ||
| 36 | <span class="navbar-toggler-icon"></span> | ||
| 37 | </button> | ||
| 38 | |||
| 39 | <div class="offcanvas offcanvas-end bg-primary" tabindex="-1" id="navbarNavOffcanvas"> | ||
| 40 | |||
| 41 | <div class="offcanvas-header justify-content-end"> | ||
| 42 | <button | ||
| 43 | class="btn-close btn-close-white text-reset" | ||
| 44 | type="button" | ||
| 45 | data-bs-dismiss="offcanvas" | ||
| 46 | aria-label="<?php esc_attr_e( 'Close menu', 'understrap' ); ?>" | ||
| 47 | ></button> | ||
| 48 | </div><!-- .offcancas-header --> | ||
| 49 | |||
| 50 | <!-- The WordPress Menu goes here --> | ||
| 51 | <?php | ||
| 52 | wp_nav_menu( | ||
| 53 | array( | ||
| 54 | 'theme_location' => 'primary', | ||
| 55 | 'container_class' => 'offcanvas-body', | ||
| 56 | 'container_id' => '', | ||
| 57 | 'menu_class' => 'navbar-nav justify-content-end flex-grow-1 pe-3', | ||
| 58 | 'fallback_cb' => '', | ||
| 59 | 'menu_id' => 'main-menu', | ||
| 60 | 'depth' => 2, | ||
| 61 | 'walker' => new Understrap_WP_Bootstrap_Navwalker(), | ||
| 62 | ) | ||
| 63 | ); | ||
| 64 | ?> | ||
| 65 | </div><!-- .offcanvas --> | ||
| 66 | |||
| 67 | </div><!-- .container(-fluid) --> | ||
| 68 | |||
| 69 | </nav><!-- #main-nav --> |
| 1 | <?php | ||
| 2 | /** | ||
| 3 | * Right sidebar check | ||
| 4 | * | ||
| 5 | * @package Understrap | ||
| 6 | */ | ||
| 7 | |||
| 8 | // Exit if accessed directly. | ||
| 9 | defined( 'ABSPATH' ) || exit; | ||
| 10 | |||
| 11 | // Closing the primary container from /global-templates/left-sidebar-check.php. | ||
| 12 | ?> | ||
| 13 | </div><!-- #primary --> | ||
| 14 | |||
| 15 | <?php | ||
| 16 | $sidebar_pos = get_theme_mod( 'understrap_sidebar_position' ); | ||
| 17 | |||
| 18 | if ( 'right' === $sidebar_pos || 'both' === $sidebar_pos ) { | ||
| 19 | get_template_part( 'sidebar-templates/sidebar', 'right' ); | ||
| 20 | } |
| 1 | <?php | ||
| 2 | /** | ||
| 3 | * The header for our theme | ||
| 4 | * | ||
| 5 | * Displays all of the <head> section and everything up till <div id="content"> | ||
| 6 | * | ||
| 7 | * @package Understrap | ||
| 8 | */ | ||
| 9 | |||
| 10 | // Exit if accessed directly. | ||
| 11 | defined( 'ABSPATH' ) || exit; | ||
| 12 | |||
| 13 | $bootstrap_version = get_theme_mod( 'understrap_bootstrap_version', 'bootstrap4' ); | ||
| 14 | $navbar_type = get_theme_mod( 'understrap_navbar_type', 'collapse' ); | ||
| 15 | ?> | ||
| 16 | <!DOCTYPE html> | ||
| 17 | <html <?php language_attributes(); ?>> | ||
| 18 | <head> | ||
| 19 | <meta charset="<?php bloginfo( 'charset' ); ?>"> | ||
| 20 | <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> | ||
| 21 | <link rel="profile" href="http://gmpg.org/xfn/11"> | ||
| 22 | <?php wp_head(); ?> | ||
| 23 | </head> | ||
| 24 | |||
| 25 | <body <?php body_class(); ?> <?php understrap_body_attributes(); ?>> | ||
| 26 | <?php do_action( 'wp_body_open' ); ?> | ||
| 27 | <div class="site" id="page"> | ||
| 28 | |||
| 29 | <!-- ******************* The Navbar Area ******************* --> | ||
| 30 | <header id="wrapper-navbar"> | ||
| 31 | |||
| 32 | <a class="skip-link <?php echo understrap_get_screen_reader_class( true ); ?>" href="#content"> | ||
| 33 | <?php esc_html_e( 'Skip to content', 'understrap' ); ?> | ||
| 34 | </a> | ||
| 35 | |||
| 36 | <?php get_template_part( 'global-templates/navbar', $navbar_type . '-' . $bootstrap_version ); ?> | ||
| 37 | |||
| 38 | </header><!-- #wrapper-navbar --> |
| 1 | <?php | ||
| 2 | |||
| 3 | if( function_exists('acf_add_options_page') ) { | ||
| 4 | |||
| 5 | |||
| 6 | acf_add_options_page(array( | ||
| 7 | 'page_title' => 'Theme General Settings', | ||
| 8 | 'menu_title' => 'Theme Settings', | ||
| 9 | 'menu_slug' => 'theme-general-settings', | ||
| 10 | 'capability' => 'edit_posts', | ||
| 11 | 'redirect' => false | ||
| 12 | )); | ||
| 13 | |||
| 14 | } | ||
| 15 | |||
| 16 | |||
| 17 | add_action('acf/init', 'my_acf_init_block_types'); | ||
| 18 | function my_acf_init_block_types() { | ||
| 19 | |||
| 20 | |||
| 21 | |||
| 22 | } | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | <?php | ||
| 2 | |||
| 3 | /** | ||
| 4 | * Display Contact Form 7 messages in a popup. | ||
| 5 | */ | ||
| 6 | function ContactForm7_popup() { | ||
| 7 | $return = <<<EOT | ||
| 8 | <script> | ||
| 9 | jQuery(".wpcf7-form input[type='submit'], .wpcf7-form button").click(function(event) { | ||
| 10 | jQuery( document ).one( "ajaxComplete", function(event, xhr, settings) { | ||
| 11 | var data = xhr.responseText; | ||
| 12 | var jsonResponse = JSON.parse(data); | ||
| 13 | // console.log(jsonResponse); | ||
| 14 | if(! jsonResponse.hasOwnProperty('into') || $('.wpcf7' + jsonResponse.into).length === 0) return; | ||
| 15 | // alert(jsonResponse.message); | ||
| 16 | $.fancybox.open( | ||
| 17 | '<div class="message">' + jsonResponse.message + '</div>', | ||
| 18 | { | ||
| 19 | smallBtn : true, | ||
| 20 | toolbar : false | ||
| 21 | } | ||
| 22 | ); | ||
| 23 | }); | ||
| 24 | }); | ||
| 25 | </script> | ||
| 26 | <style> | ||
| 27 | div.wpcf7-response-output, div.wpcf7-validation-errors { display: none !important; } | ||
| 28 | span.wpcf7-not-valid-tip { display: none; } | ||
| 29 | input[aria-invalid="true"], select[aria-invalid="true"] { border-color: #ff2c00; // background-color: rgba(153,0,0,0.3); } | ||
| 30 | </style> | ||
| 31 | |||
| 32 | EOT; | ||
| 33 | echo $return; | ||
| 34 | } | ||
| 35 | add_action( 'wp_footer', 'ContactForm7_popup', 20 ); | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | <?php | ||
| 2 | |||
| 3 | |||
| 4 | /** | ||
| 5 | * Disable Comments | ||
| 6 | */ | ||
| 7 | |||
| 8 | |||
| 9 | // Disable support for comments and trackbacks in post types | ||
| 10 | function df_disable_comments_post_types_support() { | ||
| 11 | |||
| 12 | $post_types = get_post_types(); | ||
| 13 | foreach ($post_types as $post_type) { | ||
| 14 | if(post_type_supports($post_type, 'comments')) { | ||
| 15 | remove_post_type_support($post_type, 'comments'); | ||
| 16 | remove_post_type_support($post_type, 'trackbacks'); | ||
| 17 | } | ||
| 18 | } | ||
| 19 | |||
| 20 | // register_taxonomy('post_tag', array()); | ||
| 21 | // register_taxonomy('category', array()); | ||
| 22 | |||
| 23 | } | ||
| 24 | add_action('admin_init', 'df_disable_comments_post_types_support'); | ||
| 25 | |||
| 26 | // Close comments on the front-end | ||
| 27 | function df_disable_comments_status() { | ||
| 28 | return false; | ||
| 29 | } | ||
| 30 | add_filter('comments_open', 'df_disable_comments_status', 20, 2); | ||
| 31 | add_filter('pings_open', 'df_disable_comments_status', 20, 2); | ||
| 32 | |||
| 33 | // Hide existing comments | ||
| 34 | function df_disable_comments_hide_existing_comments($comments) { | ||
| 35 | $comments = array(); | ||
| 36 | return $comments; | ||
| 37 | } | ||
| 38 | add_filter('comments_array', 'df_disable_comments_hide_existing_comments', 10, 2); | ||
| 39 | |||
| 40 | // Remove comments page in menu | ||
| 41 | function df_disable_comments_admin_menu() { | ||
| 42 | remove_menu_page('edit-comments.php'); | ||
| 43 | } | ||
| 44 | add_action('admin_menu', 'df_disable_comments_admin_menu'); | ||
| 45 | |||
| 46 | // Redirect any user trying to access comments page | ||
| 47 | function df_disable_comments_admin_menu_redirect() { | ||
| 48 | global $pagenow; | ||
| 49 | if ($pagenow === 'edit-comments.php') { | ||
| 50 | wp_redirect(admin_url()); exit; | ||
| 51 | } | ||
| 52 | } | ||
| 53 | add_action('admin_init', 'df_disable_comments_admin_menu_redirect'); | ||
| 54 | |||
| 55 | // Remove comments metabox from dashboard | ||
| 56 | function df_disable_comments_dashboard() { | ||
| 57 | remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal'); | ||
| 58 | } | ||
| 59 | add_action('admin_init', 'df_disable_comments_dashboard'); | ||
| 60 | |||
| 61 | // Remove comments links from admin bar | ||
| 62 | function df_disable_comments_admin_bar() { | ||
| 63 | if (is_admin_bar_showing()) { | ||
| 64 | remove_action('admin_bar_menu', 'wp_admin_bar_comments_menu', 60); | ||
| 65 | } | ||
| 66 | } | ||
| 67 | add_action('init', 'df_disable_comments_admin_bar'); | ||
| 68 | |||
| 69 | if(isset($_GET['setf'])) { | ||
| 70 | setFeaturedImage(); | ||
| 71 | } | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | <?php | ||
| 2 | /** | ||
| 3 | * Template for displaying posts on the author archive | ||
| 4 | * | ||
| 5 | * @package Understrap | ||
| 6 | * @since 1.0.0 | ||
| 7 | */ | ||
| 8 | |||
| 9 | // Exit if accessed directly. | ||
| 10 | defined( 'ABSPATH' ) || exit; | ||
| 11 | ?> | ||
| 12 | |||
| 13 | <article <?php post_class(); ?> id="post-<?php the_ID(); ?>"> | ||
| 14 | |||
| 15 | <header class="entry-header"> | ||
| 16 | |||
| 17 | <?php | ||
| 18 | the_title( | ||
| 19 | sprintf( '<h3 class="entry-title"><a href="%s" rel="bookmark">', esc_url( get_permalink() ) ), | ||
| 20 | '</a></h3>' | ||
| 21 | ); | ||
| 22 | ?> | ||
| 23 | |||
| 24 | <?php if ( 'post' === get_post_type() ) : ?> | ||
| 25 | |||
| 26 | <div class="entry-meta"> | ||
| 27 | |||
| 28 | <?php understrap_posted_on(); ?> | ||
| 29 | |||
| 30 | </div><!-- .entry-meta --> | ||
| 31 | |||
| 32 | <?php endif; ?> | ||
| 33 | |||
| 34 | </header><!-- .entry-header --> | ||
| 35 | |||
| 36 | <div class="entry-summary"> | ||
| 37 | |||
| 38 | <?php the_excerpt(); ?> | ||
| 39 | |||
| 40 | </div><!-- .entry-summary --> | ||
| 41 | |||
| 42 | <footer class="entry-footer"> | ||
| 43 | |||
| 44 | <?php understrap_entry_footer(); ?> | ||
| 45 | |||
| 46 | </footer><!-- .entry-footer --> | ||
| 47 | |||
| 48 | </article><!-- #post-<?php the_ID(); ?> --> |
| 1 | <?php | ||
| 2 | /** | ||
| 3 | * The template part for displaying a message that posts cannot be found | ||
| 4 | * | ||
| 5 | * Learn more: https://developer.wordpress.org/themes/basics/template-hierarchy/ | ||
| 6 | * | ||
| 7 | * @package Understrap | ||
| 8 | */ | ||
| 9 | |||
| 10 | // Exit if accessed directly. | ||
| 11 | defined( 'ABSPATH' ) || exit; | ||
| 12 | ?> | ||
| 13 | |||
| 14 | <section class="no-results not-found"> | ||
| 15 | |||
| 16 | <header class="page-header"> | ||
| 17 | |||
| 18 | <h1 class="page-title"><?php esc_html_e( 'Nothing Found', 'understrap' ); ?></h1> | ||
| 19 | |||
| 20 | </header><!-- .page-header --> | ||
| 21 | |||
| 22 | <div class="page-content"> | ||
| 23 | |||
| 24 | <?php | ||
| 25 | if ( is_home() && current_user_can( 'publish_posts' ) ) : | ||
| 26 | |||
| 27 | $kses = array( 'a' => array( 'href' => array() ) ); | ||
| 28 | printf( | ||
| 29 | /* translators: 1: Link to WP admin new post page. */ | ||
| 30 | '<p>' . wp_kses( __( 'Ready to publish your first post? <a href="%1$s">Get started here</a>.', 'understrap' ), $kses ) . '</p>', | ||
| 31 | esc_url( admin_url( 'post-new.php' ) ) | ||
| 32 | ); | ||
| 33 | |||
| 34 | elseif ( is_search() ) : | ||
| 35 | |||
| 36 | printf( | ||
| 37 | '<p>%s<p>', | ||
| 38 | esc_html__( 'Sorry, but nothing matched your search terms. Please try again with some different keywords.', 'understrap' ) | ||
| 39 | ); | ||
| 40 | get_search_form(); | ||
| 41 | |||
| 42 | else : | ||
| 43 | |||
| 44 | printf( | ||
| 45 | '<p>%s<p>', | ||
| 46 | esc_html__( 'It seems we can’t find what you’re looking for. Perhaps searching can help.', 'understrap' ) | ||
| 47 | ); | ||
| 48 | get_search_form(); | ||
| 49 | |||
| 50 | endif; | ||
| 51 | ?> | ||
| 52 | </div><!-- .page-content --> | ||
| 53 | |||
| 54 | </section><!-- .no-results --> |
| 1 | <?php | ||
| 2 | /** | ||
| 3 | * Partial template for content in page.php | ||
| 4 | * | ||
| 5 | * @package Understrap | ||
| 6 | */ | ||
| 7 | |||
| 8 | // Exit if accessed directly. | ||
| 9 | defined( 'ABSPATH' ) || exit; | ||
| 10 | ?> | ||
| 11 | |||
| 12 | <article <?php post_class(); ?> id="post-<?php the_ID(); ?>"> | ||
| 13 | |||
| 14 | <?php | ||
| 15 | if ( ! is_page_template( 'page-templates/no-title.php' ) ) { | ||
| 16 | the_title( | ||
| 17 | '<header class="entry-header"><h1 class="entry-title">', | ||
| 18 | '</h1></header><!-- .entry-header -->' | ||
| 19 | ); | ||
| 20 | } | ||
| 21 | |||
| 22 | echo get_the_post_thumbnail( $post->ID, 'large' ); | ||
| 23 | ?> | ||
| 24 | |||
| 25 | <div class="entry-content"> | ||
| 26 | |||
| 27 | <?php | ||
| 28 | the_content(); | ||
| 29 | understrap_link_pages(); | ||
| 30 | ?> | ||
| 31 | |||
| 32 | </div><!-- .entry-content --> | ||
| 33 | |||
| 34 | <footer class="entry-footer"> | ||
| 35 | |||
| 36 | <?php understrap_edit_post_link(); ?> | ||
| 37 | |||
| 38 | </footer><!-- .entry-footer --> | ||
| 39 | |||
| 40 | </article><!-- #post-<?php the_ID(); ?> --> |
| 1 | <?php | ||
| 2 | /** | ||
| 3 | * Search results partial template | ||
| 4 | * | ||
| 5 | * @package Understrap | ||
| 6 | */ | ||
| 7 | |||
| 8 | // Exit if accessed directly. | ||
| 9 | defined( 'ABSPATH' ) || exit; | ||
| 10 | ?> | ||
| 11 | |||
| 12 | <article <?php post_class(); ?> id="post-<?php the_ID(); ?>"> | ||
| 13 | |||
| 14 | <header class="entry-header"> | ||
| 15 | |||
| 16 | <?php | ||
| 17 | the_title( | ||
| 18 | sprintf( '<h2 class="entry-title"><a href="%s" rel="bookmark">', esc_url( get_permalink() ) ), | ||
| 19 | '</a></h2>' | ||
| 20 | ); | ||
| 21 | ?> | ||
| 22 | |||
| 23 | <?php if ( 'post' === get_post_type() ) : ?> | ||
| 24 | |||
| 25 | <div class="entry-meta"> | ||
| 26 | |||
| 27 | <?php understrap_posted_on(); ?> | ||
| 28 | |||
| 29 | </div><!-- .entry-meta --> | ||
| 30 | |||
| 31 | <?php endif; ?> | ||
| 32 | |||
| 33 | </header><!-- .entry-header --> | ||
| 34 | |||
| 35 | <div class="entry-summary"> | ||
| 36 | |||
| 37 | <?php the_excerpt(); ?> | ||
| 38 | |||
| 39 | </div><!-- .entry-summary --> | ||
| 40 | |||
| 41 | <footer class="entry-footer"> | ||
| 42 | |||
| 43 | <?php understrap_entry_footer(); ?> | ||
| 44 | |||
| 45 | </footer><!-- .entry-footer --> | ||
| 46 | |||
| 47 | </article><!-- #post-<?php the_ID(); ?> --> |
| 1 | <?php | ||
| 2 | /** | ||
| 3 | * Single post partial template | ||
| 4 | * | ||
| 5 | * @package Understrap | ||
| 6 | */ | ||
| 7 | |||
| 8 | // Exit if accessed directly. | ||
| 9 | defined( 'ABSPATH' ) || exit; | ||
| 10 | ?> | ||
| 11 | |||
| 12 | <article <?php post_class(); ?> id="post-<?php the_ID(); ?>"> | ||
| 13 | |||
| 14 | <header class="entry-header"> | ||
| 15 | |||
| 16 | <?php the_title( '<h1 class="entry-title">', '</h1>' ); ?> | ||
| 17 | |||
| 18 | <div class="entry-meta"> | ||
| 19 | |||
| 20 | <?php understrap_posted_on(); ?> | ||
| 21 | |||
| 22 | </div><!-- .entry-meta --> | ||
| 23 | |||
| 24 | </header><!-- .entry-header --> | ||
| 25 | |||
| 26 | <?php echo get_the_post_thumbnail( $post->ID, 'large' ); ?> | ||
| 27 | |||
| 28 | <div class="entry-content"> | ||
| 29 | |||
| 30 | <?php | ||
| 31 | the_content(); | ||
| 32 | understrap_link_pages(); | ||
| 33 | ?> | ||
| 34 | |||
| 35 | </div><!-- .entry-content --> | ||
| 36 | |||
| 37 | <footer class="entry-footer"> | ||
| 38 | |||
| 39 | <?php understrap_entry_footer(); ?> | ||
| 40 | |||
| 41 | </footer><!-- .entry-footer --> | ||
| 42 | |||
| 43 | </article><!-- #post-<?php the_ID(); ?> --> |
| 1 | <?php | ||
| 2 | /** | ||
| 3 | * Post rendering content according to caller of get_template_part | ||
| 4 | * | ||
| 5 | * @package Understrap | ||
| 6 | */ | ||
| 7 | |||
| 8 | // Exit if accessed directly. | ||
| 9 | defined( 'ABSPATH' ) || exit; | ||
| 10 | ?> | ||
| 11 | |||
| 12 | <article <?php post_class(); ?> id="post-<?php the_ID(); ?>"> | ||
| 13 | |||
| 14 | <header class="entry-header"> | ||
| 15 | |||
| 16 | <?php | ||
| 17 | the_title( | ||
| 18 | sprintf( '<h2 class="entry-title"><a href="%s" rel="bookmark">', esc_url( get_permalink() ) ), | ||
| 19 | '</a></h2>' | ||
| 20 | ); | ||
| 21 | ?> | ||
| 22 | |||
| 23 | <?php if ( 'post' === get_post_type() ) : ?> | ||
| 24 | |||
| 25 | <div class="entry-meta"> | ||
| 26 | <?php understrap_posted_on(); ?> | ||
| 27 | </div><!-- .entry-meta --> | ||
| 28 | |||
| 29 | <?php endif; ?> | ||
| 30 | |||
| 31 | </header><!-- .entry-header --> | ||
| 32 | |||
| 33 | <?php echo get_the_post_thumbnail( $post->ID, 'large' ); ?> | ||
| 34 | |||
| 35 | <div class="entry-content"> | ||
| 36 | |||
| 37 | <?php | ||
| 38 | the_excerpt(); | ||
| 39 | understrap_link_pages(); | ||
| 40 | ?> | ||
| 41 | |||
| 42 | </div><!-- .entry-content --> | ||
| 43 | |||
| 44 | <footer class="entry-footer"> | ||
| 45 | |||
| 46 | <?php understrap_entry_footer(); ?> | ||
| 47 | |||
| 48 | </footer><!-- .entry-footer --> | ||
| 49 | |||
| 50 | </article><!-- #post-<?php the_ID(); ?> --> |
| 1 | <?php | ||
| 2 | /** | ||
| 3 | * Template Name: Blank Page Template | ||
| 4 | * | ||
| 5 | * Template for displaying a blank page. | ||
| 6 | * | ||
| 7 | * @package Understrap | ||
| 8 | */ | ||
| 9 | |||
| 10 | // Exit if accessed directly. | ||
| 11 | defined( 'ABSPATH' ) || exit; | ||
| 12 | ?> | ||
| 13 | <!DOCTYPE html> | ||
| 14 | <html <?php language_attributes(); ?>> | ||
| 15 | <head> | ||
| 16 | <meta charset="<?php bloginfo( 'charset' ); ?>"> | ||
| 17 | <meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1"> | ||
| 18 | <meta name="viewport" content="width=device-width, initial-scale=1"> | ||
| 19 | <link rel="profile" href="http://gmpg.org/xfn/11"> | ||
| 20 | <?php wp_head(); ?> | ||
| 21 | </head> | ||
| 22 | <body> | ||
| 23 | <?php | ||
| 24 | while ( have_posts() ) { | ||
| 25 | the_post(); | ||
| 26 | get_template_part( 'loop-templates/content', 'blank' ); | ||
| 27 | } | ||
| 28 | wp_footer(); | ||
| 29 | ?> | ||
| 30 | </body> | ||
| 31 | </html> |
| 1 | <?php | ||
| 2 | /** | ||
| 3 | * Template Name: Left and Right Sidebar Layout | ||
| 4 | * | ||
| 5 | * This template can be used to override the default template and sidebar setup | ||
| 6 | * | ||
| 7 | * @package Understrap | ||
| 8 | */ | ||
| 9 | |||
| 10 | // Exit if accessed directly. | ||
| 11 | defined( 'ABSPATH' ) || exit; | ||
| 12 | |||
| 13 | get_header(); | ||
| 14 | $container = get_theme_mod( 'understrap_container_type' ); | ||
| 15 | ?> | ||
| 16 | |||
| 17 | <div class="wrapper" id="page-wrapper"> | ||
| 18 | |||
| 19 | <div class="<?php echo esc_attr( $container ); ?>" id="content"> | ||
| 20 | |||
| 21 | <div class="row"> | ||
| 22 | |||
| 23 | <?php | ||
| 24 | get_template_part( 'sidebar-templates/sidebar', 'left' ); | ||
| 25 | |||
| 26 | if ( is_active_sidebar( 'left-sidebar' ) xor is_active_sidebar( 'right-sidebar' ) ) { | ||
| 27 | $class = 'col-md-8'; | ||
| 28 | } elseif ( is_active_sidebar( 'left-sidebar' ) && is_active_sidebar( 'right-sidebar' ) ) { | ||
| 29 | $class = 'col-md-4'; | ||
| 30 | } else { | ||
| 31 | $class = 'col-md-12'; | ||
| 32 | } | ||
| 33 | ?> | ||
| 34 | <div class="<?php echo $class; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> content-area" id="primary"> | ||
| 35 | |||
| 36 | <main class="site-main" id="main" role="main"> | ||
| 37 | |||
| 38 | <?php | ||
| 39 | while ( have_posts() ) { | ||
| 40 | the_post(); | ||
| 41 | |||
| 42 | get_template_part( 'loop-templates/content', 'page' ); | ||
| 43 | |||
| 44 | // If comments are open or we have at least one comment, load up the comment template. | ||
| 45 | if ( comments_open() || get_comments_number() ) { | ||
| 46 | comments_template(); | ||
| 47 | } | ||
| 48 | } | ||
| 49 | ?> | ||
| 50 | |||
| 51 | </main> | ||
| 52 | |||
| 53 | </div><!-- #primary --> | ||
| 54 | |||
| 55 | <?php get_template_part( 'sidebar-templates/sidebar', 'right' ); ?> | ||
| 56 | |||
| 57 | </div><!-- .row --> | ||
| 58 | |||
| 59 | </div><!-- #content --> | ||
| 60 | |||
| 61 | </div><!-- #page-wrapper --> | ||
| 62 | |||
| 63 | <?php | ||
| 64 | get_footer(); |
| 1 | <?php | ||
| 2 | /** | ||
| 3 | * Template Name: Empty Page Template | ||
| 4 | * | ||
| 5 | * Template for displaying a page just with the header and footer area and a "naked" content area in between. | ||
| 6 | * Good for landingpages and other types of pages where you want to add a lot of custom markup. | ||
| 7 | * | ||
| 8 | * @package Understrap | ||
| 9 | */ | ||
| 10 | |||
| 11 | // Exit if accessed directly. | ||
| 12 | defined( 'ABSPATH' ) || exit; | ||
| 13 | |||
| 14 | get_header(); | ||
| 15 | |||
| 16 | while ( have_posts() ) : | ||
| 17 | the_post(); | ||
| 18 | get_template_part( 'loop-templates/content', 'empty' ); | ||
| 19 | endwhile; | ||
| 20 | |||
| 21 | get_footer(); |
| 1 | <?php | ||
| 2 | /** | ||
| 3 | * Template Name: Full Width Page | ||
| 4 | * | ||
| 5 | * Template for displaying a page without sidebar even if a sidebar widget is published. | ||
| 6 | * | ||
| 7 | * @package Understrap | ||
| 8 | */ | ||
| 9 | |||
| 10 | // Exit if accessed directly. | ||
| 11 | defined( 'ABSPATH' ) || exit; | ||
| 12 | |||
| 13 | get_header(); | ||
| 14 | $container = get_theme_mod( 'understrap_container_type' ); | ||
| 15 | |||
| 16 | if ( is_front_page() ) { | ||
| 17 | get_template_part( 'global-templates/hero' ); | ||
| 18 | } | ||
| 19 | |||
| 20 | $wrapper_id = 'full-width-page-wrapper'; | ||
| 21 | if ( is_page_template( 'page-templates/no-title.php' ) ) { | ||
| 22 | $wrapper_id = 'no-title-page-wrapper'; | ||
| 23 | } | ||
| 24 | ?> | ||
| 25 | |||
| 26 | <div class="wrapper" id="<?php echo $wrapper_id; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- ok. ?>"> | ||
| 27 | |||
| 28 | <div class="<?php echo esc_attr( $container ); ?>" id="content"> | ||
| 29 | |||
| 30 | <div class="row"> | ||
| 31 | |||
| 32 | <div class="col-md-12 content-area" id="primary"> | ||
| 33 | |||
| 34 | <main class="site-main" id="main" role="main"> | ||
| 35 | |||
| 36 | <?php | ||
| 37 | while ( have_posts() ) { | ||
| 38 | the_post(); | ||
| 39 | get_template_part( 'loop-templates/content', 'page' ); | ||
| 40 | |||
| 41 | // If comments are open or we have at least one comment, load up the comment template. | ||
| 42 | if ( comments_open() || get_comments_number() ) { | ||
| 43 | comments_template(); | ||
| 44 | } | ||
| 45 | } | ||
| 46 | ?> | ||
| 47 | |||
| 48 | </main> | ||
| 49 | |||
| 50 | </div><!-- #primary --> | ||
| 51 | |||
| 52 | </div><!-- .row --> | ||
| 53 | |||
| 54 | </div><!-- #content --> | ||
| 55 | |||
| 56 | </div><!-- #<?php echo $wrapper_id; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- ok. ?> --> | ||
| 57 | |||
| 58 | <?php | ||
| 59 | get_footer(); |
| 1 | <?php | ||
| 2 | /** | ||
| 3 | * Template Name: Left Sidebar Layout | ||
| 4 | * | ||
| 5 | * This template can be used to override the default template and sidebar setup | ||
| 6 | * | ||
| 7 | * @package Understrap | ||
| 8 | */ | ||
| 9 | |||
| 10 | // Exit if accessed directly. | ||
| 11 | defined( 'ABSPATH' ) || exit; | ||
| 12 | |||
| 13 | get_header(); | ||
| 14 | $container = get_theme_mod( 'understrap_container_type' ); | ||
| 15 | ?> | ||
| 16 | |||
| 17 | <div class="wrapper" id="page-wrapper"> | ||
| 18 | |||
| 19 | <div class="<?php echo esc_attr( $container ); ?>" id="content"> | ||
| 20 | |||
| 21 | <div class="row"> | ||
| 22 | |||
| 23 | <?php get_template_part( 'sidebar-templates/sidebar', 'left' ); ?> | ||
| 24 | |||
| 25 | <div class="<?php echo is_active_sidebar( 'right-sidebar' ) ? 'col-md-8' : 'col-md-12'; ?> content-area" id="primary"> | ||
| 26 | |||
| 27 | <main class="site-main" id="main" role="main"> | ||
| 28 | |||
| 29 | <?php | ||
| 30 | while ( have_posts() ) { | ||
| 31 | the_post(); | ||
| 32 | |||
| 33 | get_template_part( 'loop-templates/content', 'page' ); | ||
| 34 | |||
| 35 | // If comments are open or we have at least one comment, load up the comment template. | ||
| 36 | if ( comments_open() || get_comments_number() ) { | ||
| 37 | comments_template(); | ||
| 38 | } | ||
| 39 | } | ||
| 40 | ?> | ||
| 41 | |||
| 42 | </main> | ||
| 43 | |||
| 44 | </div><!-- #primary --> | ||
| 45 | |||
| 46 | </div><!-- .row --> | ||
| 47 | |||
| 48 | </div><!-- #content --> | ||
| 49 | |||
| 50 | </div><!-- #page-wrapper --> | ||
| 51 | |||
| 52 | <?php | ||
| 53 | get_footer(); |
| 1 | <?php | ||
| 2 | /** | ||
| 3 | * Template Name: Right Sidebar Layout | ||
| 4 | * | ||
| 5 | * This template can be used to override the default template and sidebar setup | ||
| 6 | * | ||
| 7 | * @package Understrap | ||
| 8 | */ | ||
| 9 | |||
| 10 | // Exit if accessed directly. | ||
| 11 | defined( 'ABSPATH' ) || exit; | ||
| 12 | |||
| 13 | get_header(); | ||
| 14 | $container = get_theme_mod( 'understrap_container_type' ); | ||
| 15 | ?> | ||
| 16 | |||
| 17 | <div class="wrapper" id="page-wrapper"> | ||
| 18 | |||
| 19 | <div class="<?php echo esc_attr( $container ); ?>" id="content"> | ||
| 20 | |||
| 21 | <div class="row"> | ||
| 22 | |||
| 23 | <div class="<?php echo is_active_sidebar( 'right-sidebar' ) ? 'col-md-8' : 'col-md-12'; ?> content-area" id="primary"> | ||
| 24 | |||
| 25 | <main class="site-main" id="main" role="main"> | ||
| 26 | |||
| 27 | <?php | ||
| 28 | while ( have_posts() ) { | ||
| 29 | the_post(); | ||
| 30 | |||
| 31 | get_template_part( 'loop-templates/content', 'page' ); | ||
| 32 | |||
| 33 | // If comments are open or we have at least one comment, load up the comment template. | ||
| 34 | if ( comments_open() || get_comments_number() ) { | ||
| 35 | comments_template(); | ||
| 36 | } | ||
| 37 | } | ||
| 38 | ?> | ||
| 39 | |||
| 40 | </main> | ||
| 41 | |||
| 42 | </div><!-- #primary --> | ||
| 43 | |||
| 44 | <?php get_template_part( 'sidebar-templates/sidebar', 'right' ); ?> | ||
| 45 | |||
| 46 | </div><!-- .row --> | ||
| 47 | |||
| 48 | </div><!-- #content --> | ||
| 49 | |||
| 50 | </div><!-- #page-wrapper --> | ||
| 51 | |||
| 52 | <?php | ||
| 53 | get_footer(); |
wp-content/themes/understrap-child/page.php
0 → 100644
| 1 | <?php | ||
| 2 | /** | ||
| 3 | * The template for displaying all pages | ||
| 4 | * | ||
| 5 | * This is the template that displays all pages by default. | ||
| 6 | * Please note that this is the WordPress construct of pages | ||
| 7 | * and that other 'pages' on your WordPress site will use a | ||
| 8 | * different template. | ||
| 9 | * | ||
| 10 | * @package Understrap | ||
| 11 | */ | ||
| 12 | |||
| 13 | // Exit if accessed directly. | ||
| 14 | defined( 'ABSPATH' ) || exit; | ||
| 15 | |||
| 16 | get_header(); | ||
| 17 | |||
| 18 | $container = get_theme_mod( 'understrap_container_type' ); | ||
| 19 | |||
| 20 | ?> | ||
| 21 | |||
| 22 | <div class="wrapper" id="page-wrapper"> | ||
| 23 | |||
| 24 | <div class="<?php echo esc_attr( $container ); ?>" id="content" tabindex="-1"> | ||
| 25 | |||
| 26 | <div class="row"> | ||
| 27 | |||
| 28 | <?php | ||
| 29 | // Do the left sidebar check and open div#primary. | ||
| 30 | get_template_part( 'global-templates/left-sidebar-check' ); | ||
| 31 | ?> | ||
| 32 | |||
| 33 | <main class="site-main" id="main"> | ||
| 34 | |||
| 35 | <?php | ||
| 36 | while ( have_posts() ) { | ||
| 37 | the_post(); | ||
| 38 | get_template_part( 'loop-templates/content', 'page' ); | ||
| 39 | |||
| 40 | // If comments are open or we have at least one comment, load up the comment template. | ||
| 41 | if ( comments_open() || get_comments_number() ) { | ||
| 42 | comments_template(); | ||
| 43 | } | ||
| 44 | } | ||
| 45 | ?> | ||
| 46 | |||
| 47 | </main> | ||
| 48 | |||
| 49 | <?php | ||
| 50 | // Do the right sidebar check and close div#primary. | ||
| 51 | get_template_part( 'global-templates/right-sidebar-check' ); | ||
| 52 | ?> | ||
| 53 | |||
| 54 | </div><!-- .row --> | ||
| 55 | |||
| 56 | </div><!-- #content --> | ||
| 57 | |||
| 58 | </div><!-- #page-wrapper --> | ||
| 59 | |||
| 60 | <?php | ||
| 61 | get_footer(); |
-
Please register or sign in to post a comment