検索ページと分類ページで投稿を並べ替えるプラグインがあります。ループはすでに結果の絞り込みを処理しているので、カスタム メタ値で投稿をソートできるようにする必要があります。この場合の価格。既存のクエリに到達し、特殊文字を置き換えてから、クリーンなメタ値に基づいて並べ替えできるようにしたいと考えています。
私はこの選択を使用しましたが、問題は wp_query で見つかった結果ではなく、データベース上のすべての投稿を照会することであり、これによりソートが大幅に遅くなる可能性があります
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);