web/wp-content/themes/mozilla-builders/archive.php (45 lines of code) (raw):
<?php
/**
* The template for displaying Archive pages.
*
* Used to display archive-type pages if nothing more specific matches a query.
* For example, puts together date-based pages if no date.php file exists.
*
* Learn more: http://codex.wordpress.org/Template_Hierarchy
*
* @package MozillaBuilders
*/
use Timber\Timber;
$context = Timber::context();
$context['title'] = 'Archive';
$query_args = false;
/* Day archive */
if ( is_day() ) {
$context['title'] = 'Archive: ' . get_the_date( 'M d Y' );
} elseif ( is_month() ) { // Month archive.
$context['title'] = 'Archive: ' . get_the_date( 'M Y' );
} elseif ( is_year() ) { // Year archive.
$context['title'] = 'Archive: ' . get_the_date( 'Y' );
} elseif ( is_tag() ) { // Tag archive.
$context['title'] = single_tag_title( '', false );
} elseif ( is_category() ) { // Category archive.
$context['title'] = single_cat_title( '', false );
$context['is_post'] = true;
} elseif ( isset( $wp_query->query['authors'] ) ) { // Author archive.
$author_slug = $wp_query->query['authors'];
$query_args = array(
'tax_query' => array(
array(
'taxonomy' => 'author',
'field' => 'slug',
'terms' => array( $author_slug ),
),
),
);
$author = get_term_by( 'slug', $author_slug, 'author' );
if ( $author instanceof WP_Term ) {
$context['title'] = 'Latest from ' . $author->name;
}
} elseif ( is_post_type_archive() ) { // Post type archive.
$context['title'] = post_type_archive_title( '', false );
} elseif ( is_tax() ) { // Taxonomy archive.
$context['title'] = single_term_title( '', false );
}
/* Set the posts that should appear on the archive page. */
$_posts = Timber::get_posts( $query_args );
$context['posts'] = $_posts;
$context['pagination'] = $_posts->pagination( array( 'mid_size' => 2 ) );
if ( 'post' === get_post_type() ) {
$context['subheading'] = 'Articles';
} else {
$context['subheading'] = get_post_type_object( get_post_type() )->label;
}
Timber::render( array( 'pages/archive-' . get_post_type() . '.twig', 'pages/archive.twig' ), $context );