Or, embed this snippet using GenerateWP WordPress Plugin.

Download

Clone

SC – Post Gallery

// Add Shortcode
function post_gallery_func( $atts ) {

	// Attributes
	$atts = shortcode_atts(
		array(
			'post_type' => '',
			'filters_cat' => '',
			'post_per_page' => '',
		),
		$atts,
		'post_gallery'
	);

	    $args = array(
			'post_type' => 'portfolio',
			'orderby' => 'name',
			'post_per_page' => -1
		);  
	    
	    
	
	    $query = new WP_Query($args);
	
	
	
		$string = "";
	
	
	
	    if ($query->have_posts()){
	
			$string .= "<div class='master-filter-gallery' id='gallery-filter-one'>";
	
		     $string .= "<div class='filters d-flex flex-row flex-wrap align-items-center justify-content-center'>";
	
		     $string .= "<ul class='nav'>";
	
			 $string .= "<li class='nav-item'><a href='#' id='todo' class='nav-link button-category active'>Todo</a></li>";
	
			 $myCats = get_categories();
	
			 //Categories
	
			foreach ($myCats as $categ) {
				$c_name = $categ->cat_name;
				$c_slug = $categ->slug;
	
				$string .= "<li class='nav-item'><a href='#' id='$c_slug' class='nav-link button-category'>".$c_name."</a></li>";
			}
	
		     $string .= "</ul>";
	
		     $string .= "</div>"; //End filters
	
		     $string .= "<div class='row'>";
	
		        while($query->have_posts()){
	
					$query->the_post();
	
	
	
					$categories = get_the_category();
	
				
	
					foreach($categories as $category_name){
	
						$c_name = $category_name->cat_name;
	
						$c_slug = $category_name->slug;
	
					}
	
	
	
		            $string .= "<div class='col-12 col-md-3 container-item ".$c_slug."'>";
	
					$string .= "<div class='item-gallery'>";
	
					$string .= "<img src='".get_the_post_thumbnail_url()."' alt=''>";
	
					$string .= "<a href='".get_the_post_thumbnail_url()."' data-lightbox='image-1' class='caption-link'><i class='fas fa-search-plus'></i></a>";
	
		            $string .= "</div>"; //End item-gallery
	
		            $string .= "</div>"; //End container-item
	
		        }
	
		     $string .= "</div>"; //End row
	
		     $string .= "</div>"; //End master-filter-gallery
	
	    } else {
			echo "No hay";
		}
	
	
	
		wp_reset_postdata();
	
		return $string;

}
add_shortcode( 'post_gallery', 'post_gallery_func' );