Order posts by date and then by custom field

add_filter(‘posts_orderby’, ‘posts_orderby’); function posts_orderby($orderby_for_query) { global $wpdb; $prefix = $wpdb->prefix; $orderby_for_query = “LEFT(” . $prefix . “posts.post_date, 10) DESC, ” . $orderby_for_query; return $orderby_for_query; } This produces this query: SELECT wp_posts.* FROM wp_posts INNER JOIN wp_postmeta ON (wp_posts.ID = wp_postmeta.post_id) WHERE 1=1 AND wp_posts.post_type=”post” AND (wp_posts.post_status=”publish”) AND (wp_postmeta.meta_key = ‘my_post_rating’ ) GROUP BY wp_posts.ID ORDER … Read more

On Taxonomy Template page, want to add Post_Type

You can use pre_get_posts filter hook to check if you are on the taxonomy page and if so just add your custom post type to the query something like this: function add_my_type( $query ) { if ( $query->is_tax(‘YOUR_TAXONOMY’) ) { $query->set( ‘post_type’, array(‘post’,’YOUR_CUSTOM_POST’) ); } } add_filter( ‘pre_get_posts’, ‘add_my_type’ );

Use post__in and post__not_in together?

post__in and post__not_in are mutually exclusive. Note: you cannot combine post__in and post__not_in in the same query. http://codex.wordpress.org/Class_Reference/WP_Query As your question is written, the solution you reject– that of using array_diff— is the obvious answer. If it is true that that solution won’t work you will need a filter on posts_where (probably) that will provide … Read more

Sorting a list of posts displayed under a list of associated terms (which should be sorted without initial articles)

This is a really interesting question, which can result in a very expensive, resource intensive process which can really slow your page down dramatically PRELUDE All my code in this question is based on the following post type and taxonomy, so before you run any code, make sure to adjust the post type and taxonomy … Read more

Post queries by latitude and longitude

Close. You need another INNER JOIN and should escape all your variables using $wpdb->prepare. I’ve also included a more efficient Haversine formula (source) to calculate the radius. If you use kilometers, then change the $earth_radius to 6371. Also, a great way to debug is to echo the sql and paste it into phpMyAdmin (or whatever … Read more