add vertical layout template
This commit is contained in:
parent
65aeb2d58a
commit
c3b98e296e
|
@ -13,6 +13,21 @@ function understrap_scripts() {
|
|||
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
|
||||
wp_enqueue_script( 'comment-reply' );
|
||||
}
|
||||
|
||||
// menu - vertical page association
|
||||
if ( is_page_template( 'page-templates/vertical-one-page.php' ) || is_home() || is_single() ) {
|
||||
wp_enqueue_script('vertical-one-page', get_template_directory_uri() . '/js/vertical-one-page.js', array('jquery'), '0.4.8', true);
|
||||
$page_for_posts = strtolower( get_the_title( get_option( 'page_for_posts' ) ) );
|
||||
$home_url = home_url();
|
||||
$is_single = is_single();
|
||||
$vars = array(
|
||||
'pageForPosts' => $page_for_posts,
|
||||
'homeUrl' => $home_url,
|
||||
'isSingle' => $is_single
|
||||
);
|
||||
wp_localize_script( 'vertical-one-page', 'vars', $vars );
|
||||
}
|
||||
// menu - vertical page association end
|
||||
}
|
||||
|
||||
add_action( 'wp_enqueue_scripts', 'understrap_scripts' );
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
/**
|
||||
* Vertical page navigation
|
||||
* A temporary source file providing smooth scrolling navigation to Pages
|
||||
*/
|
||||
(function ($) {
|
||||
var currentPage = location.href;
|
||||
var adjustedHeight = $('body').hasClass('admin-bar') ? 36 : 0;
|
||||
var blogPage = vars.homeUrl + '/' + vars.pageForPosts;
|
||||
if (currentPage.substr(-1) === '/') {
|
||||
currentPage = currentPage.substr(0, currentPage.length -1);
|
||||
}
|
||||
|
||||
$(document).ready(function () {
|
||||
// smoothly scroll to an ID
|
||||
$('a[href*="#"]:not([href="#"])').click(function (e) {
|
||||
var target;
|
||||
// if not on root URL
|
||||
if (currentPage === blogPage || vars.isSingle) {
|
||||
target = $(this);
|
||||
target = vars.homeUrl + '/' + target[0].hash;
|
||||
location = target;
|
||||
}
|
||||
target = $(this.hash);
|
||||
target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
|
||||
if (target.length) {
|
||||
|
||||
$('html, body').delay(100).animate({
|
||||
scrollTop: target.offset().top - adjustedHeight
|
||||
}, 800);
|
||||
// put the hash in location bar
|
||||
window.history.pushState(null, null, e.delegateTarget.href);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
})(jQuery);
|
|
@ -0,0 +1,40 @@
|
|||
<?php
|
||||
/**
|
||||
* The template used for displaying page content in a vertical layout
|
||||
* The template modifies Article's ID by using post's slug to lower case as anchor point.
|
||||
* @package understrap
|
||||
*/
|
||||
?>
|
||||
|
||||
<?php global $post ?>
|
||||
|
||||
<article id="<?php echo strtolower($post->post_title); ?>" <?php post_class(); ?>>
|
||||
|
||||
<header class="entry-header">
|
||||
|
||||
<?php the_title( '<h2 class="entry-title">', '</h2>' ); ?>
|
||||
|
||||
</header><!-- .entry-header -->
|
||||
|
||||
<?php echo get_the_post_thumbnail( $post->ID, 'large' ); ?>
|
||||
|
||||
<div class="entry-content">
|
||||
|
||||
<?php the_content(); ?>
|
||||
|
||||
<?php
|
||||
wp_link_pages( array(
|
||||
'before' => '<div class="page-links">' . __( 'Pages:', 'understrap' ),
|
||||
'after' => '</div>',
|
||||
) );
|
||||
?>
|
||||
|
||||
</div><!-- .entry-content -->
|
||||
|
||||
<footer class="entry-footer">
|
||||
|
||||
<?php edit_post_link( __( 'Edit', 'understrap' ), '<span class="edit-link">', '</span>' ); ?>
|
||||
|
||||
</footer><!-- .entry-footer -->
|
||||
|
||||
</article><!-- #post-## -->
|
|
@ -0,0 +1,53 @@
|
|||
<?php
|
||||
/**
|
||||
* Template Name: Vertical One Page
|
||||
*
|
||||
* Template for displaying a page without sidebar even if a sidebar widget is published
|
||||
*
|
||||
* @package understrap
|
||||
*/
|
||||
|
||||
get_header(); ?>
|
||||
|
||||
<?php
|
||||
/*
|
||||
* Exclude the posts page from being shown in this layout.
|
||||
* Order pages by their order number.
|
||||
*/
|
||||
$exclude = get_option('page_for_posts');
|
||||
$args = array(
|
||||
'post_type' => 'page',
|
||||
'post__not_in' => array($exclude),
|
||||
'orderby' => 'menu_order',
|
||||
'order' => 'ASC'
|
||||
);
|
||||
|
||||
$qry = new WP_Query( $args );
|
||||
|
||||
?>
|
||||
|
||||
<div class="wrapper" id="full-width-page-wrapper">
|
||||
|
||||
<div id="content" class="container">
|
||||
|
||||
<div id="primary" class="col-md-12 content-area">
|
||||
|
||||
<main id="main" class="site-main" role="main">
|
||||
|
||||
<?php if ( have_posts() ): while ( $qry->have_posts() ): $qry->the_post() ?>
|
||||
<div class="page">
|
||||
<?php get_template_part( 'loop-templates/content', 'verticalpage' ); ?>
|
||||
</div>
|
||||
|
||||
<?php wp_reset_postdata(); //reset custom query?>
|
||||
<?php endwhile; endif; ?>
|
||||
|
||||
</main><!-- #main -->
|
||||
|
||||
</div><!-- #primary -->
|
||||
|
||||
</div><!-- Container end -->
|
||||
|
||||
</div><!-- Wrapper end -->
|
||||
|
||||
<?php get_footer(); ?>
|
Reference in New Issue