test 44
function sck_filtered_resource_tiles_shortcode($atts) {
$atts = shortcode_atts(array(
’posts_per_page’ => 6,
), $atts, 'sck_filtered_resource_tiles’);
$selected_tag = isset($_GET[’tag’]) ? sanitize_title($_GET[’tag’]) : ”;
$paged = max(1, get_query_var(’paged’), get_query_var(’page’));
$args = array(
’post_type’ => 'post’,
’posts_per_page’ => (int) $atts[’posts_per_page’],
’paged’ => $paged,
’ignore_sticky_posts’ => true,
’post_status’ => 'publish’,
’tag_slug__and’ => array_filter(array(’baza-wiedzy’, $selected_tag)),
);
$query = new WP_Query($args);
$filters = array(
” => 'Dla wszystkich’,
’mieszkaniec’ => 'Dla mieszkańców’,
’samorzad’ => 'Dla samorządów’,
’szkola’ => 'Dla nauczycieli’,
);
$tile_labels = array(
’mieszkaniec’ => 'Dla mieszkańców’,
’samorzad’ => 'Dla samorządów’,
’szkola’ => 'Dla nauczycieli’,
);
ob_start();
echo '<div class=”sck-filter-buttons”>’;
foreach ($filters as $slug => $label) {
$url = empty($slug)
? remove_query_arg(array(’tag’, 'paged’))
: add_query_arg(array(’tag’ => $slug, 'paged’ => false));
$active_class = ($selected_tag === $slug || ($selected_tag === ” && $slug === ”)) ? ’ is-active’ : ”;
echo '<a class=”sck-filter-btn’ . esc_attr($active_class) . '” href=”’ . esc_url($url) . '”>’ . esc_html($label) . '</a>’;
}
echo '</div>’;
if ($query->have_posts()) {
echo '<div class=”sck-tiles-grid”>’;
while ($query->have_posts()) {
$query->the_post();
$post_tags = get_the_tags();
$label = ”;
if ($post_tags && !is_wp_error($post_tags)) {
foreach ($post_tags as $tag) {
if ($tag->slug === 'baza-wiedzy’) {
continue;
}
if (isset($tile_labels[$tag->slug])) {
$label = $tile_labels[$tag->slug];
break;
}
}
}
echo '<article class=”sck-tile”>’;
if (has_post_thumbnail()) {
echo '<a class=”sck-tile__image-link” href=”’ . esc_url(get_permalink()) . '”>’;
the_post_thumbnail(’large’, array(’class’ => 'sck-tile__image’));
echo '</a>’;
} else {
echo '<a class=”sck-tile__image-link sck-tile__image-link–placeholder” href=”’ . esc_url(get_permalink()) . '”>’;
echo '<div class=”sck-tile__image sck-tile__image–placeholder”></div>’;
echo '</a>’;
}
echo '<div class=”sck-tile__content”>’;
if (!empty($label)) {
echo '<div class=”sck-tile__label”>’ . esc_html($label) . '</div>’;
}
echo '<h3 class=”sck-tile__title”><a href=”’ . esc_url(get_permalink()) . '”>’ . esc_html(get_the_title()) . '</a></h3>’;
$excerpt = get_the_excerpt();
if (!empty($excerpt)) {
echo '<div class=”sck-tile__excerpt”>’ . esc_html($excerpt) . '</div>’;
}
echo '<a class=”sck-tile__link” href=”’ . esc_url(get_permalink()) . '”>Czytaj →</a>’;
echo '</div>’;
echo '</article>’;
}
echo '</div>’;
echo '<div class=”sck-pagination”>’;
echo paginate_links(array(
’total’ => $query->max_num_pages,
’current’ => $paged,
’prev_text’ => '← Poprzednie’,
’next_text’ => 'Następne →’,
));
echo '</div>’;
} else {
echo '<p>Brak postów.</p>’;
}
wp_reset_postdata();
return ob_get_clean();
}