How to create custom shortcode in WordPress?
Shortcode in WordPress.
In WordPress we can create custom shortcodes and we can show its output anywhere on the site. To create a shortcode, we will use WordPress built in function add_shortcode(), this function required two parameters, first “shortcode” and others “callback function”; callback function is the function that we will create in theme’s functions.php file.
function theme_name_movies_shortcode($atts = []) { $a = shortcode_atts( array( 'no_of_posts' => 5, 'title' => "Movies List" ), $atts ); $the_query = new WP_Query( array( 'post_type' => 'movies', 'posts_per_page' => $a['no_of_posts'], )); if ( $the_query->have_posts() ) : ?> <h2><?php echo $a['title']?></h2> <ul> <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <li><a href="<?php echo get_permalink($the_query->ID)?>"><?php the_title(); ?></a></li> <?php endwhile; ?> </ul> <?php wp_reset_postdata(); else : __('No Movies'); endif; } add_shortcode(“movies_list”, “theme_name_movies_shortcode”);
For reference, check following function, suppose there is custom post type named “movies” and you want to show movie list in sidebar.
Now you can use “movies_list” shortcode in your website as following ways.
// Use shortcode in a PHP file. echo do_shortcode( '[movies_list no_of_posts="5" title="Movies"]' );
Or you can add following statement in “text” widget.
[movies_list no_of_posts="5" title="Latest Films"]
That’s it. Hope this will help.