Kaedah untuk penapisan "orderby" (ASC dan DESC) WP_Query menggunakan meta_query
P粉007288593
P粉007288593 2023-09-01 16:20:27
0
1
560
<p>Saya cuba menapis siaran mengikut 'DESC' menggunakan metadata tersuai 'like_count_on_post' dan kemudian kumpulkan semua kosong 'like_count_on_post' dan 'dislike_count_on_post' dan akhirnya mengisih mengikut 'ASC' daripada 'dislike_count_on_post' tetapi saya hanya boleh Mendapatkan suka dalam tertib menurun, atau jika saya memadamkan: </p> <blockquote> <p>'nilai_bidang_suai' => 'DESC'</p> </blockquote> <p>Saya boleh mendapatkan tertib menaik mengikut langkah, tetapi bukan kedua-duanya pada masa yang sama. </p> <p>Kod parameter pertanyaan: </p> <pre class="brush:php;toolbar:false;">$args = array( 'post_status' => 'terbitkan', 'post_type' => 'sveikinimai', 'meta_query' => tatasusunan( "hubungan" => 'suka' => array( "hubungan" => 'nilai_bidang_suai' => 'kunci' = > '_suka_kira_pada_siaran_', ), 'custom_field' => array( 'kunci' = > '_suka_kira_pada_siaran_', 'compare' => 'TIDAK WUJUD', ), ), 'tidak suka' => tatasusunan( "hubungan" => 'custom_field_value_2' => 'key' => '_tidak suka_kira_pada_siaran_', ), 'custom_field_2' => 'key' => '_tidak suka_kira_pada_siaran_', 'compare' => 'TIDAK WUJUD', ), ), ), 'orderby' => array( 'custom_field_value' => 'DESC', 'custom_field_value_2' => 'ASC' ), 'posts_per_page' => 'paged' => $paged, );</pra> <p>Kemas kini, jika anda ingin menapis medan metadata yang tidak wujud, berikut ialah kodnya: </p> <pre class="brush:php;toolbar:false;">$args = array( 'post_status' => 'terbitkan', 'post_type' => 'sveikinimai', 'meta_query' => tatasusunan( "hubungan" => 'nilai_bidang_suai' => 'kunci' = > '_suka_kira_pada_siaran_', ), 'custom_field_value_2' => 'key' => '_tidak suka_kira_pada_siaran_', ), ), 'orderby' => array( 'custom_field_value' => 'DESC', 'custom_field_value_2' => 'ASC' ), 'posts_per_page' => 'paged' => $paged, );</pre></p>
P粉007288593
P粉007288593

membalas semua(1)
P粉471207302

Untuk menyelesaikan masalah, saya menambahkan medan meta 'suka_kira_pada_siaran' dan 'tidaksuka_kira_pada_siaran' pada semua siaran. Penapis berfungsi dengan baik, saya rasa ia tidak dapat diselesaikan apabila medan kosong, tetapi berikut ialah kod untuk menjadikan medan ini tidak kosong:

add_action('save_post', 'add_post_custom_meta'); 
function add_post_custom_meta() {
  global $post;
  $post_id  = $post->ID;

  update_post_meta($post_id, '_like_count_on_post_', 0);
  update_post_meta($post_id, '_dislike_count_on_post_', 0);
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!