<i class="fa fa-arrow-circle-right"></i> </a> <a id="photo" class="action" href="<?php featured_image_url($post); ?> "> <i class="fa fa-camera"></i> </a> </div> </li> <?php $i++; } } else { ?> <p><?php _e('Sorry, no posts matched your criteria.'); ?> </p> <?php } ?> <?php wp_reset_query(); ?> </ul> </div> <?php enqueue_gallery_scripts(); get_footer();
function tau_gallery_shortcode($attr) { enqueue_gallery_scripts(); $post = get_post(); static $instance = 0; $instance++; if (!empty($attr['ids'])) { // 'ids' is explicitly ordered, unless you specify otherwise. if (empty($attr['orderby'])) { $attr['orderby'] = 'post__in'; } $attr['include'] = $attr['ids']; } /** * Filter the default gallery shortcode output. * * If the filtered output isn't empty, it will be used instead of generating * the default gallery template. * * @since 2.5.0 * * @see gallery_shortcode() * * @param string $output The gallery output. Default empty. * @param array $attr Attributes of the gallery shortcode. */ $output = apply_filters('post_gallery', '', $attr); if ($output != '') { return $output; } // We're trusting author input, so let's at least make sure it looks like a valid orderby statement if (isset($attr['orderby'])) { $attr['orderby'] = sanitize_sql_orderby($attr['orderby']); if (!$attr['orderby']) { unset($attr['orderby']); } } $html5 = current_theme_supports('html5', 'gallery'); $atts = shortcode_atts(array('order' => 'ASC', 'orderby' => 'menu_order ID', 'id' => $post ? $post->ID : 0, 'itemtag' => $html5 ? 'figure' : 'li', 'icontag' => $html5 ? 'div' : 'div', 'captiontag' => $html5 ? 'figcaption' : 'p', 'columns' => 3, 'size' => 'thumbnail', 'include' => '', 'exclude' => '', 'link' => ''), $attr, 'gallery'); $id = intval($atts['id']); if ('RAND' == $atts['order']) { $atts['orderby'] = 'none'; } if (!empty($atts['include'])) { $_attachments = get_posts(array('include' => $atts['include'], 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $atts['order'], 'orderby' => $atts['orderby'])); $attachments = array(); foreach ($_attachments as $key => $val) { $attachments[$val->ID] = $_attachments[$key]; } } elseif (!empty($atts['exclude'])) { $attachments = get_children(array('post_parent' => $id, 'exclude' => $atts['exclude'], 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $atts['order'], 'orderby' => $atts['orderby'])); } else { $attachments = get_children(array('post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $atts['order'], 'orderby' => $atts['orderby'])); } if (empty($attachments)) { return ''; } if (is_feed()) { $output = "\n"; foreach ($attachments as $att_id => $attachment) { $output .= wp_get_attachment_link($att_id, $atts['size'], true) . "\n"; } return $output; } $itemtag = tag_escape($atts['itemtag']); $captiontag = tag_escape($atts['captiontag']); $icontag = tag_escape($atts['icontag']); $valid_tags = wp_kses_allowed_html('post'); if (!isset($valid_tags[$itemtag])) { $itemtag = 'li'; } if (!isset($valid_tags[$captiontag])) { $captiontag = 'div'; } if (!isset($valid_tags[$icontag])) { $icontag = 'div'; } $columns = intval($atts['columns']); $itemwidth = $columns > 0 ? floor(100 / $columns) : 100; $float = is_rtl() ? 'right' : 'left'; $selector = "gallery-{$instance}"; $gallery_style = ''; $size_class = sanitize_html_class($atts['size']); $gallery_list = "<ul id='{$selector}' class='gallery galleryid-{$id} gallery-columns-{$columns} gallery-size-{$size_class}'>"; $output = apply_filters('gallery_style', $gallery_style . $gallery_list); $i = 0; foreach ($attachments as $id => $attachment) { if (!empty($atts['link']) && 'file' === $atts['link']) { $image_output = wp_get_attachment_link($id, $atts['size'], false, false); } elseif (!empty($atts['link']) && 'none' === $atts['link']) { $image_output = wp_get_attachment_image($id, $atts['size'], false); } else { $image_output = wp_get_attachment_link($id, $atts['size'], true, false); } $image_meta = wp_get_attachment_metadata($id); // echo "<pre>"; // var_dump($attachment); // echo "</pre>"; // die(''); $filter_class = $i % 2 == 0 ? 'red' : 'blue'; $orientation = ''; if (isset($image_meta['height'], $image_meta['width'])) { $orientation = $image_meta['height'] > $image_meta['width'] ? 'portrait' : 'landscape'; } $output .= "<{$itemtag} id='card-" . $i . "' class='gallery-item " . $filter_class . " card'>"; $output .= "\n\t\t\t<{$icontag} class='gallery-icon {$orientation} front'>\n\t\t\t\t<div class='filter'></div>\n\t\t\t\t{$image_output}\n\t\t\t</{$icontag}>\n\t\t\t<div class='back'>\n\t\t\t\t<p>{$attachment->post_title}</p>\n\t\t\t\t<a class='action' href='" . $attachment->guid . "'>\n\t\t\t\t\t<i class='fa fa-camera'></i>\n\t\t\t\t</a>\n\t\t\t</div>"; if ($captiontag && trim($attachment->post_excerpt)) { $output .= "\n\t\t\t\t<{$captiontag} class='wp-caption-text gallery-caption'>\n\t\t\t\t" . wptexturize($attachment->post_excerpt) . "\n\t\t\t\t</{$captiontag}>"; } $output .= "</{$itemtag}>"; ++$i; } if (!$html5 && $columns > 0 && $i % $columns !== 0) { $output .= "\n\t\t\t<br style='clear: both' />"; } $output .= "</ul>\n"; return $output; }