query_vars; return $qs; } function FilterCustomPostsWhere($where) { global $wpdb; global $curr_qs_vars; foreach ($curr_qs_vars as $queryVarKey => $queryVarValue){ if (substr($queryVarKey, 0, strlen(RC_CWP_QUERY_PERFIX)) == RC_CWP_QUERY_PERFIX){ $customKey = substr($queryVarKey, strlen(RC_CWP_QUERY_PERFIX)); $customVal = $queryVarValue; $where = $where . " AND 0 < (SELECT count($wpdb->postmeta.meta_value) FROM $wpdb->postmeta WHERE $wpdb->postmeta.post_id = $wpdb->posts.ID and $wpdb->postmeta.meta_key = '$customKey' and $wpdb->postmeta.meta_value = '$customVal') "; } } //Add orderby if (get_query_var(RC_CWP_QUERY_ORDERBY)){ $newOrderby = get_query_var(RC_CWP_QUERY_ORDERBY); $newOrderbyFieldName = substr($newOrderby, strlen(RC_CWP_QUERY_PERFIX)); $where = $where . " AND pmeta.meta_key = '$newOrderbyFieldName' "; } return $where; } function FilterCustomPostsOrderby($orderby) { global $wpdb; if (get_query_var(RC_CWP_QUERY_ORDERBY)){ $newOrderby = get_query_var(RC_CWP_QUERY_ORDERBY); $newOrderbyFieldName = substr($newOrderby, strlen(RC_CWP_QUERY_PERFIX)); $orderby = "pmeta.meta_value ".get_query_var('order'); } return $orderby; } function FilterCustomPostsFields($fields) { global $wpdb; if (get_query_var(RC_CWP_QUERY_ORDERBY)){ $newOrderby = get_query_var(RC_CWP_QUERY_ORDERBY); $newOrderbyFieldName = substr($newOrderby, strlen(RC_CWP_QUERY_PERFIX)); $fields = $fields. " , pmeta.meta_value "; } return $fields; } function FilterCustomPostsJoin($join) { global $wpdb; if (get_query_var(RC_CWP_QUERY_ORDERBY)){ $join = $join . " INNER JOIN $wpdb->postmeta pmeta ON $wpdb->posts.ID = pmeta.post_id "; } return $join; } } ?>