What you are about to read is the result of, probably, 20+ hours of banging my head against a wall. It wasn’t until Nick came in and showed me the light that I finally was able to get over the hump.
I was having a heck of a time getting a custom WordPress query that displays a random custom post from a custom taxonomy to work properly. I only seem to have this problem when returning information via a plugin or via a function in the theme, but it is possible that it might pop up elsewhere.
To clarify, I have a custom post type called “ads”. I have a custom taxonomy attached to the “ads” custom post type called “rotation”. Here is the code I finally went with:
global $post;
$args = array(
'post_type'=>'ads',
'showposts'=>'1',
'orderby'=>'rand',
'tax_query'=> array( array(
'taxonomy' => 'rotation',
'field' => 'slug',
'terms' => $position,
'operator' => 'IN',
), ),
);
$my_query = new WP_Query($args);
while ($my_query->have_posts()) : $my_query->the_post();
// Display post details here. Example: the_title(), the_permalink(), etc.
endwhile;
}
The big hurdle to overcome was knowing that I needed to use the “tax_query” property. I still don’t know why that part is necessary, but it is. If you know why that is necessary, please share your knowledge in the comments.
I hope this information saves someone many hours of frustration! 🙂
More posts from themightymo.com
How to Connect a GoDaddy Site to ManageWP
GoDaddy owns ManageWP, and, strangely, they make it very difficult to add GoDaddy-managed WordPress sites to their ManageWP service. Thankfully, there’s a quick workaround: Visit https://yoursite.com/wp-admin/plugins.php?showWorker=1 — This will make the ManageWP “Worker” plugin visible. Copy the connection info from the ManageWP Worker plugin. Add the site per-normal on ManageWP. That’s it! I hope this…
How to check if your current page is the wp-login.php page
I realized this morning that my TMM Maintenance Mode WordPress plugin had a bug that was causing the wp-login.php page to be inaccessible. The solution was to write a simple function that checks whether or not we’re currently on a login page, and then add a call to that function in my code. Here’s the…
WooCommerce Product Image Gallery Not Loading with WP Rocket Active
Today I updated a WooCommerce site, and everything worked fine, except for the images on product pages – they were not displaying at all. After a lot of trial & error, I realized that WP Rocket was to blame. I’m not sure exactly what the issue was (though my hunch is that it had to…