Add Snippet To Project
Are you looking for a way to add some excitement to your WordPress website? What if you could display a list of random pages for your visitors to explore? It’s a great way to keep your content fresh and engage your audience with new and interesting articles. In this article, we’ll show you how to easily display a list of random pages on your WordPress site, allowing your visitors to discover hidden gems and dive deeper into your content. Let’s get started!
function wpturbo_display_random_pages( $post_type ) {
$args = array(
'post_type' => $post_type,
'orderby' => 'rand',
'posts_per_page' => 5
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
echo "<ul>";
while ( $query->have_posts() ) {
$query->the_post();
echo "<li><a href='" . get_permalink() . "'>" . get_the_title() . "</a></li>";
}
echo "</ul>";
wp_reset_postdata();
} else {
echo "No pages found";
}
}
add_shortcode( 'wpturbo_random_pages', 'wpturbo_display_random_pages' );
The code snippet provided allows you to display a list of random pages on your WordPress website.
First, we define a function called wpturbo_display_random_pages which takes a parameter $post_type specifying the type of posts to retrieve. In our case, we want to display random pages, so we pass in the value 'page' as the $post_type parameter.
Inside the function, we define an array called $args which specifies the parameters for the query. Here, we set the post_type parameter to the value of $post_type, which will be 'page' in our case. We also set the orderby parameter to 'rand', which orders the results randomly, and the posts_per_page parameter to 5 to limit the number of results to 5. You can modify these parameters based on your requirements.
Next, we create a new instance of the WP_Query class, passing in the $args array. This will execute the query and store the results in the $query variable.
We then check if the query returned any posts using the have_posts() method. If there are posts, we start an <ul> element to create an unordered list. Inside the loop, we use the the_post() function to set up the post data for each iteration. We then use the get_permalink() and get_the_title() functions to retrieve and echo the permalink and title of each page, respectively. We wrap them in <li> and <a> tags to create a clickable link.
After the loop ends, we close the <ul> element. We then use the wp_reset_postdata() function to restore the global $post variable after the loop finishes.
If the query did not return any posts, we output the message "No pages found".
Finally, we use the add_shortcode() function to register a shortcode called [wpturbo_random_pages] which will invoke the wpturbo_display_random_pages function and display the list of random pages wherever the shortcode is used on your WordPress site.
