false, 'posttype' => 'post', 'category' => false, 'offset' => 0, 'orderby' => false, 'template' => 'phpincludes/part-archive-item-compact', 'order' => false, 'itemsperrow' => 4, 'quantity' => 4 ), $atts ) ); if(!is_numeric($quantity)) { $quantity = 4; } if(!is_numeric($offset)) { $offset = 0; } ob_start(); /** * Query for my content */ $args = array( 'post_type' => 'post', 'posts_per_page' => $quantity, 'post_status' => 'publish', 'paged' => 1, 'suppress_filters' => false, 'ignore_sticky_posts' => 1, 'offset' => esc_attr($offset), 'meta_key' => '_thumbnail_id' ); if($orderby){ if($orderby == 'rand' || $orderby == 'ID' || $orderby == 'author' || $orderby == 'title' || $orderby == 'date' || $orderby == 'comment_count' || $orderby == 'menu_order' ) { $args[ 'orderby'] = esc_attr($orderby); } } if($order){ if($order == 'ASC' || $order == 'DESC'){ $args[ 'order'] = esc_attr($order); } } /** * Add category parameters to query if any is set */ if (false !== $category && 'all' !== $category) { $args[ 'tax_query'] = array( array( 'taxonomy' => esc_attr( vlogger_get_type_taxonomy( $posttype ) ), 'field' => 'slug', 'terms' => array(esc_attr($category)), 'operator'=> 'IN' //Or 'AND' or 'NOT IN' ) ); } // ========== QUERY BY ID ================= if($id){ $idarr = explode(",",$id); if(count($idarr) > 0){ $quantity = count($idarr); $args = array( 'post__in'=> $idarr, 'orderby' => 'post__in', 'ignore_sticky_posts' => 1 ); } } // ========== QUERY BY ID END ================= /** * [$wp_query execution of the query] * @var WP_Query */ $wp_query = new WP_Query( $args ); $classes="s12 m6 l3"; switch($itemsperrow) { case "1": $classes="s12 m12"; break; case "2": $classes="s12 m6 l6"; break; case "3": $classes="s12 m4"; break; case "4": default: $classes="s12 m6 l3"; break; } /** * Loop start */ if ( $wp_query->have_posts() ) : ?>
have_posts() ) : $wp_query->the_post(); $post = $wp_query->post; setup_postdata( $post ); ?>
esc_html__( "Post Grid", "vlogger" ), "base" => "vlogger-post-grid", "icon" => get_template_directory_uri(). '/img/post-grid.png', "description" => esc_html__( "Grid of posts", "vlogger" ), "category" => esc_html__( "Theme shortcodes", "vlogger"), "params" => array( array( "type" => "textfield", "heading" => esc_html__( "ID, comma separated list (123,345,7638)", "vlogger" ), "description" => esc_html__( "Display only the contents with these IDs. All other parameters will be ignored.", "vlogger" ), "param_name" => "id", 'value' => '' ), array( "type" => "dropdown", "heading" => esc_html__( "Quantity", "vlogger" ), "param_name" => "quantity", "std" => "4", 'value' => array("1","2","3","4","5","6","7", "8", "9","10", "12", "16", "20"), "description" => esc_html__( "Number of posts to display", "vlogger" ) ), array( "type" => "dropdown", "heading" => esc_html__( "Items per row", "vlogger" ), "param_name" => "itemsperrow", "std" => "4", 'value' => array("1","2","3","4"), "description" => esc_html__( "Items per row", "vlogger" ) ), array( "type" => "dropdown", "heading" => esc_html__( "Post template", "vlogger" ), "param_name" => "template", 'value' => array( __("Compact", "vlogger") =>"phpincludes/part-archive-item-compact", __("Inline", "vlogger") =>"phpincludes/part-archive-item-inline", __("Medium", "vlogger") =>"phpincludes/part-archive-item-medium", __("Large no text", "vlogger") =>"phpincludes/part-archive-item-large-notext", __("Large with text", "vlogger") =>"phpincludes/part-archive-item-large", __("Video", "vlogger") =>"phpincludes/part-archive-item-video", ), "description" => esc_html__( "Choose the post template for the items", "vlogger" ) ), array( "type" => "textfield", "heading" => esc_html__( "Filter by category (slug)", "vlogger" ), "description" => esc_html__("Insert the slug of a category to filter the results","vlogger"), "param_name" => "category" ), array( "type" => "textfield", "heading" => esc_html__( "Offset (number)", "vlogger" ), "description" => esc_html__("Number of posts to skip in the database query","vlogger"), "param_name" => "offset" ), array( "type" => "dropdown", "heading" => esc_html__( "Order by", "vlogger" ), "param_name" => "orderby", 'value' => array(__("Default", "vlogger")=>"", __("Publish date", "vlogger")=>"date", // __("Menu order", "vlogger")=>"menu_order", __("Random", "vlogger")=>"rand" ), "description" => esc_html__( "Change the order of the posts", "vlogger" ) ), ) ) ); }}