Reputation: 11
I have been going around in circles for weeks now - I cannot seem to get my custom post type to order by title -
I have a custom search with nearby function so want to keep that - my custom post queries display by title relevance on the WP Admin side but not on the front.
I have located the the pre_fetch posts code concerning and changed meta from orderby "date' to "title" and "DESC' to "ASC" - purged cache server and browser side but still no joy.
I think this should be really easy but nothing I change here seems to work - has SQL cached my earlier faulty queries and is still returning?
Any advice here to this baffling problem
already tired adding arg to functions.php to override post oder but does not work
as stated have changed custom post code to try to return queries by title ASC not date DESC but no change in query results here either
/**
* filter orderby
*/
if (isset($_REQUEST['sortby'])
&& ( $query->is_main_query() || (isset($query->query_vars['meta_key']) && $query->query_vars['meta_key'] == 'rating_score_comment') )
) {
if ($_REQUEST['sortby'] !== 'date') {
// $query->query_vars['meta_key'] = $_REQUEST['sortby'];
$query->set('orderby', 'meta_value_num');
} else {
// order by date
$query->set('orderby', 'date');
}
// order desc
$query->set('order', 'DESC');
}
// order by rating score
if(isset($_REQUEST['query']['orderby']) && $_REQUEST['query']['orderby'] == 'rating_score_comment') {
$query->set('orderby', 'meta_value_num date');
if( !isset($_REQUEST['query']['meta_key'] ) ) {
$query->query_vars['meta_key'] = $_REQUEST['query']['orderby'];
$query->meta_query = array(
//check to see if et_featured has been filled out
'relation' => 'OR',
array(
//check to see if date has been filled out
'key' => $_REQUEST['query']['orderby'],
'compare' => 'BETWEEN',
'value' => array(
0,
5
)
),
array(
//if no et_featured has been added show these posts too
'key' => $_REQUEST['query']['orderby'],
'value' => '',
'compare' => 'NOT EXISTS'
)
);
}else{
// order by rating score for feature block
if($_REQUEST['query']['meta_key'] == 'et_featured') {
$query->set('orderby', 'menu_order');
$query->set('meta_query' , array(
array(
'key' => 'rating_score_comment',
// 'value' => array(0, 5),
// 'compare' => 'BETWEEN'
),
array(
'key' => 'et_featured',
'value' => '1',
'compare' => 'LIKE'
)
));
}
if($_REQUEST['query']['meta_key'] == 'de_event_post') {
// order by rating score for event block
$query->set('orderby', 'menu_order');
$query->set('meta_query' , array(
array(
'key' => 'rating_score_comment',
'value' => array(0, 5),
'compare' => 'BETWEEN'
),
array(
'key' => 'de_event_post',
'value' => '',
'compare' => '!=',
'type' => 'NUMERIC'
)
));
}
}
}
// Orderby featured
// if(is_search()){
// $query->set('meta_key', 'et_featured');
// $query->set('orderby', 'meta_value_num date');
// }
$is_search = ! (empty($_REQUEST['query']) || empty($_REQUEST['query']['s']));
if ((et_load_mobile() && !is_single() ) && !$is_search && (isset($query->query_vars['orderby']) && $query->query_vars['orderby'] != 'rand')) {
if (!is_author() && isset($query->query_vars['post_type']) && $query->query_vars['post_type'] == $this->post_type) {
if(!isset($query->query_vars['near_lat']) || $query->query_vars['near_lat'] == '' ){
$query->set('orderby', 'meta_value_num date');
}
// if (isset($query->query_vars['meta_value'])) {
// unset($query->query_vars['meta_value']);
// }
$query->meta_query = array(
//check to see if et_featured has been filled out
'relation' => 'OR',
array(
//check to see if date has been filled out
'key' => 'et_featured',
'compare' => 'IN',
'value' => array(
0,
1
)
) ,
array(
//if no et_featured has been added show these posts too
'key' => 'et_featured',
'value' => 1,
'compare' => 'NOT EXISTS'
)
);
}
}
return $query;
}
/**
* filter order and replace menu_order by mt1.value
* mt1.meta_value is the meta value when join with table post meta base on rating_score meta key
* @param String $orderby Wordpress post query orderby string
* @return String
*
* @since 1.8.5
* @author Dakachi
*/
function orderbyreplace($orderby) {
global $wpdb;
return str_replace($wpdb->posts.'.menu_order', 'mt1.meta_value+0', $orderby);
}
/**
* catch event change ad status, update expired date
Upvotes: 1
Views: 885