Sort posts by day, week, month, alltime
-
Hi there!
Hope you can help me out!
I found a topic answering part of my question, although (of course π ) I would like something a bit different (view the code I used below).
I am trying to sort my posts through regular loop and would like to order/ sort my posts by day, week, month, alltime.It really took me forever to find out what the code below should be implemented in functions.php, therefore I urge you to speak loud, clear en slow for me in PHP terms π
Thank you in advance!
Kind regards,
Fluksy
Code:
// Added by HC add_action( 'pre_get_posts', 'sort_by_filter' ); function mv_main_orderby($orderby) {} function tr_main_orderby($orderby) {} function sort_by_filter($query) { global $wp_query; // IF conditions modified by HC if ( !is_admin() && $query->is_main_query() && isset($wp_query->query['orderby']) && $wp_query->query['orderby'] != "rand" ) { switch ($wp_query->query['orderby']) { case "popular": add_filter('posts_join', 'wpp_query_join' ); add_filter('posts_orderby', 'wpp_query_order_by'); break; case "views": add_filter('posts_orderby', 'mv_main_orderby'); break; case "rating": add_filter('posts_orderby', 'tr_main_orderby'); break; } } } // Added by HC. Did you forget this function? :P function wpp_query_order_by( $orderby ){ global $wp_query, $wpdb; $valid_order = array('asc', 'desc'); // Sorting by 'popular', order by pageviews if ( isset($wp_query->query['orderby']) && 'popular' == $wp_query->query['orderby'] ) { return "{$wpdb->prefix}popularpostsdata.pageviews " . ( ( isset($wp_query->query['order']) && in_array($wp_query->query['order'], $valid_order) ) ? strtoupper($wp_query->query['order']) : "DESC" ); } return $orderby; } function wpp_query_join( $join ) { global $wp_query, $wpdb; // Sorting by 'popular', join the popularpostsdata table into the query if ( isset($wp_query->query['orderby']) && 'popular' == $wp_query->query['orderby'] ) { $join .= " LEFT JOIN {$wpdb->prefix}popularpostsdata ON " . $wpdb->posts . ".ID = {$wpdb->prefix}popularpostsdata.postid "; } return $join; }
Viewing 1 replies (of 1 total)
Viewing 1 replies (of 1 total)
The topic ‘Sort posts by day, week, month, alltime’ is closed to new replies.