Kumi
c738ed6f89
Moved code for fetching and displaying publication status terms into a reusable function `display_publication_status_terms`. This simplifies template files by reducing redundancy and enhances maintainability. The new function also supports displaying terms with associated colors.
99 lines
No EOL
4.8 KiB
PHP
99 lines
No EOL
4.8 KiB
PHP
<?php get_header(); ?>
|
|
|
|
<!-- Archive Content -->
|
|
<section class="container my-5">
|
|
<h1 class="display-4 text-center">Articles</h1>
|
|
<div class="row mb-4">
|
|
<div class="col-md-6">
|
|
<form method="GET" action="" class="form-inline justify-content-start">
|
|
<div class="form-group mb-2">
|
|
<label for="publication_status" class="sr-only"><?php _e('Publication Status', 'duck-behavior-journal'); ?></label>
|
|
<select name="publication_status" id="publication_status" class="form-control" onchange="this.form.submit()">
|
|
<option value=""><?php _e('All Statuses', 'duck-behavior-journal'); ?></option>
|
|
<?php
|
|
$terms = get_terms(array(
|
|
'taxonomy' => 'publication_status',
|
|
'hide_empty' => false,
|
|
));
|
|
foreach ($terms as $term) {
|
|
$selected = (isset($_GET['publication_status']) && $_GET['publication_status'] == $term->slug) ? 'selected' : '';
|
|
echo '<option value="' . esc_attr($term->slug) . '" ' . $selected . '>' . esc_html($term->name) . '</option>';
|
|
}
|
|
?>
|
|
</select>
|
|
</div>
|
|
<button type="submit" class="btn btn-primary mb-2 ml-2"><?php _e('Filter', 'duck-behavior-journal'); ?></button>
|
|
</form>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<form method="GET" action="" class="form-inline justify-content-end">
|
|
<div class="form-group mb-2">
|
|
<label for="s" class="sr-only"><?php _e('Search', 'duck-behavior-journal'); ?></label>
|
|
<input type="text" name="s" id="s" class="form-control" placeholder="<?php _e('Search', 'duck-behavior-journal'); ?>" value="<?php echo get_search_query(); ?>">
|
|
</div>
|
|
<button type="submit" class="btn btn-primary mb-2 ml-2"><?php _e('Search', 'duck-behavior-journal'); ?></button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
|
|
<div class="col-md-4">
|
|
<div class="card mb-4 shadow-sm">
|
|
<?php if (has_post_thumbnail()) : ?>
|
|
<a href="<?php the_permalink(); ?>">
|
|
<img src="<?php the_post_thumbnail_url(); ?>" class="card-img-top" alt="<?php the_title(); ?>">
|
|
</a>
|
|
<?php endif; ?>
|
|
<div class="card-body">
|
|
<a href="<?php the_permalink(); ?>">
|
|
<h5 class="card-title"><?php the_title(); ?></h5>
|
|
</a>
|
|
<p class="card-text">
|
|
<?php
|
|
$authors = get_post_meta(get_the_ID(), 'article_authors', true);
|
|
if (!empty($authors)) {
|
|
echo esc_html($authors[0]);
|
|
if (count($authors) > 1) {
|
|
echo ' et al.';
|
|
}
|
|
} else {
|
|
the_author();
|
|
}
|
|
?>
|
|
</p>
|
|
<p class="card-text"><?php the_excerpt(); ?></p>
|
|
<p class="card-text">
|
|
<?php display_publication_status_terms(get_the_ID()); ?>
|
|
</p>
|
|
<a href="<?php the_permalink(); ?>" class="btn btn-outline-primary">Read More</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<?php endwhile;
|
|
else : ?>
|
|
<p><?php _e('Sorry, no articles found.', 'duck-behavior-journal'); ?></p>
|
|
<?php endif; ?>
|
|
</div>
|
|
<div class="row">
|
|
<div class="pagination col-md-12">
|
|
<?php
|
|
global $wp_query;
|
|
|
|
echo paginate_links(array(
|
|
'total' => $wp_query->max_num_pages,
|
|
'current' => max(1, get_query_var('paged')),
|
|
'format' => '?paged=%#%',
|
|
'show_all' => false,
|
|
'end_size' => 2,
|
|
'mid_size' => 1,
|
|
'prev_next' => true,
|
|
'prev_text' => __('« Prev', 'duck-behavior-journal'),
|
|
'next_text' => __('Next »', 'duck-behavior-journal'),
|
|
'type' => 'plain'
|
|
));
|
|
?>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<?php get_footer(); ?>
|