0
我有一个插件可以对搜索页面和分类页面上的帖子进行排序。循环已经考虑到了缩小结果的范围,所以我需要的是能够将我的自定义元值进行排序。在这种情况下价格。我希望能够覆盖现有的查询,替换任何特殊字符,然后根据干净的元值进行排序。从wp_query中排序meta_value,但在排序前删除特殊字符
我用这个选择,但问题是它querys的数据库,而不是在wp_query发现reults上的所有帖子,这可以如果你只使用它减慢排序极大
function join_it($join) {
global $wpdb;
$sym = get_option('sort_by_ignore');
$join .= "LEFT JOIN (SELECT $wpdb->prefix" . "postmeta.post_id AS ID, CAST(REPLACE(REPLACE(REPLACE($wpdb->prefix" . "postmeta.meta_value, ',', ''), '" . $sym . "',''),' ','') AS SIGNED) AS price FROM $wpdb->prefix" . "postmeta WHERE meta_key = 'my_price'" . ") P ON (P.ID = wp_posts.ID)";
return $join;
}
add_filter('posts_join', 'join_it');
$args = array_merge($wp_query->query, array('caller_get_posts' => 1,'paged' => $paged));
query_posts($args);
真棒,不完全是我的答案,但这导致我在正确的方向!你摇滚! – thesanerone 2012-07-10 22:12:47
优秀;乐意效劳。 – Hobo 2012-07-11 05:48:58