Shortcodes are a great way to add functionalities to your store. While creating a shortcode you can use same code written once at multiple places. It’s same like calling a function in functional programming approach.
In this tutorial we’ll learn how to create a short code that will list products on the basis of given tags.
To do this add the following lines of code at the end of your theme’s functions.php file:
function woo_products_by_tags_shortcode( $atts, $content = null ) { // Get attribuets extract(shortcode_atts(array( "tags" => '' ), $atts)); ob_start(); // Define Query Arguments $args = array( 'post_type' => 'product', 'posts_per_page' => 100, 'tag_name' => $tags ); // Create the new query $products = new WP_Query( $args ); //$woocommerce_loop['columns'] = $columns; if ( count($products->posts) > 0 ) : ?> <?php $products->the_post(); ?> <?php endif; // The Loop while ( $products->have_posts() ) { $products->the_post(); ?> <li><a href="<?php the_guid() ?>"><?php echo get_the_title() ?></a></li> <?php //echo '<li><a href="'.the_guid().'">' . get_the_title() . '</a></li>'; } $product_count = $products->post_count; if( $product_count > 0 ) : echo '<ul class="products">'; // Start the loop while ( $products->have_posts() ) : $products->the_post(); global $product; global $post; $products->the_post(); endwhile; echo '</ul><!--/.products-->'; else : _e('No product matching your criteria.'); endif; woocommerce_reset_loop(); wp_reset_postdata(); return ob_get_clean(); } add_shortcode("woo_products_by_tags", "woo_products_by_tags_shortcode");
You can access functions.php file here:
This code will create a shortcode that can be used on any page or post. This will be the shortcode which can be used along with tag parameter:
[woo_products_by_tags tags=”xyz”]
Place it on any page.
Save page and go to page from front end.
You’ll see product having provided tag, listed there: