/** * Sortable taxonomy columns * Credit: http://scribu.net/wordpress/sortable-taxonomy-columns.html * Modified to suit our purpose * Allows us to sort the gallery listing by * Slightly modified to fit our purpose * * @global type $wpdb * @param type $clauses * @param type $wp_query * @return type */ function mpp_taxonomy_filter_clauses($clauses, $wp_query) { //only apply if we are on the mpp gallery list screen if (!mpp_admin_is_gallery_list()) { return $clauses; } if (!isset($wp_query->query['orderby'])) { return $clauses; } $order_by = $wp_query->query['orderby']; $order_by_tax = mpp_translate_to_taxonomy($order_by); if (!$order_by_tax || !in_array($order_by, array('component', 'status', 'type'))) { return $clauses; } global $wpdb; //if we are here, It is for one of our taxonomy $clauses['join'] .= <<<SQL LEFT OUTER JOIN {$wpdb->term_relationships} ON {$wpdb->posts}.ID={$wpdb->term_relationships}.object_id LEFT OUTER JOIN {$wpdb->term_taxonomy} USING (term_taxonomy_id) LEFT OUTER JOIN {$wpdb->terms} USING (term_id) SQL; $clauses['where'] .= $wpdb->prepare(" AND (taxonomy = %s OR taxonomy IS NULL)", $order_by_tax); $clauses['groupby'] = "object_id"; $clauses['orderby'] = "GROUP_CONCAT({$wpdb->terms}.name ORDER BY name ASC) "; $clauses['orderby'] .= 'ASC' == strtoupper($wp_query->get('order')) ? 'ASC' : 'DESC'; return $clauses; }
public function sort_list(WP_Query $query) { if (!mpp_admin_is_gallery_list()) { return; } //check if the post type if (!$query->is_main_query() || $query->get('post_type') != mpp_get_gallery_post_type()) { return; } //if we are here, we may need to sort $orderby = isset($_REQUEST['orderby']) ? $_REQUEST['orderby'] : ''; $sort_order = isset($_REQUEST['order']) ? $_REQUEST['order'] : ''; if (!$orderby || !$sort_order) { return; } if ($orderby == 'user_id') { $query->set('orderby', 'author'); } elseif ($orderby == 'media_count') { $query->set('meta_key', '_mpp_media_count'); $query->set('orderby', 'meta_value_num'); } $query->set('order', $sort_order); }
public function add_inline_css() { //hide the Add New action link in the gallery list if (!mpp_admin_is_gallery_list()) { return; } ?> <style type="text/css"> body.post-type-mpp-gallery .page-title-action { display: none; } </style> <?php }