wp-duckbehaviorjournal/archive-article.php
Kumi d9bd687c7a
feat: improve filter form styling and accessibility
Enhanced the filter form for publication status by adding Bootstrap classes for better styling and layout, including a button for clarity. Increased the form's accessibility by adding labels and ARIA attributes, improving the user experience for all visitors.
2024-06-20 11:39:54 +02:00

84 lines
No EOL
4 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-12">
<form method="GET" action="" class="form-inline justify-content-center">
<div class="form-group mx-sm-3 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"><?php _e('Filter', '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()) : ?>
<img src="<?php the_post_thumbnail_url(); ?>" class="card-img-top" alt="<?php the_title(); ?>">
<?php endif; ?>
<div class="card-body">
<h5 class="card-title"><?php the_title(); ?></h5>
<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
$terms = get_the_terms(get_the_ID(), 'publication_status');
if (!empty($terms) && !is_wp_error($terms)) {
$term_list = array();
foreach ($terms as $term) {
$term_list[] = $term->name;
}
echo implode(', ', $term_list);
}
?>
</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="col-md-12">
<?php
echo paginate_links(array(
'total' => $loop->max_num_pages,
));
?>
</div>
</div>
</section>
<?php get_footer(); ?>