<?php
/* Template Name: Mobile Models */
get_header(); ?>
<div class="model-filter-container">
<input type="text" id="search-model" placeholder="Search for model">
<div id="series-filter">
<button data-series="all" class="series-btn active">All</button>
<?php
$series_terms = get_terms(array(
'taxonomy' => 'series',
'hide_empty' => true,
));
foreach ($series_terms as $term) {
echo '<button data-series="' . esc_attr($term->slug) . '" class="series-btn">' . esc_html($term->name) . '</button>';
}
?>
</div>
</div>
<div id="models-container">
<?php
$models_query = new WP_Query(array(
'post_type' => 'mobile_model',
'posts_per_page' => -1,
));
if ($models_query->have_posts()) :
while ($models_query->have_posts()) : $models_query->the_post();
$series = wp_get_post_terms(get_the_ID(), 'series', array('fields' => 'slugs'));
?>
<div class="model-card" data-series="<?php echo esc_attr(implode(' ', $series)); ?>">
<?php if (has_post_thumbnail()) : ?>
<div class="model-image">
<?php the_post_thumbnail('medium'); ?>
</div>
<?php endif; ?>
<div class="model-title"><?php the_title(); ?></div>
</div>
<?php
endwhile;
wp_reset_postdata();
else :
echo '<p>No models found.</p>';
endif;
?>
</div>
<style>
.model-filter-container { text-align: center; margin-bottom: 20px; }
.series-btn { margin: 0 5px; padding: 5px 10px; cursor: pointer; border: 1px solid #ccc; }
.series-btn.active { background: #f04; color: #fff; }
#models-container { display: flex; flex-wrap: wrap; justify-content: center; gap: 20px; }
.model-card { border: 1px solid #ccc; padding: 10px; text-align: center; max-width: 150px; }
.model-image img { max-width: 100%; }
</style>
<script>
document.addEventListener('DOMContentLoaded', function () {
const buttons = document.querySelectorAll('.series-btn');
const models = document.querySelectorAll('.model-card');
const searchInput = document.getElementById('search-model');
buttons.forEach(button => {
button.addEventListener('click', () => {
document.querySelector('.series-btn.active').classList.remove('active');
button.classList.add('active');
const series = button.getAttribute('data-series');
models.forEach(model => {
if (series === 'all' || model.getAttribute('data-series').includes(series)) {
model.style.display = 'block';
} else {
model.style.display = 'none';
}
});
});
});
searchInput.addEventListener('input', () => {
const searchQuery = searchInput.value.toLowerCase();
models.forEach(model => {
const title = model.querySelector('.model-title').textContent.toLowerCase();
if (title.includes(searchQuery)) {
model.style.display = 'block';
} else {
model.style.display = 'none';
}
});
});
});
</script>
<?php get_footer(); ?>