Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

WordPress pre_get_posts tidak berfungsi

Anda dapat menemukan dokumentasinya di pre_get_post filter di sini http://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts

Bagi saya sepertinya masalahnya adalah bagaimana Anda mengatur post_ids yang ingin Anda ambil. Jika Anda merujuk ke tautan di atas, Anda dapat melihat berbagai nilai yang dapat disetel pada $query objek yang diteruskan ke filter, dan post_id bukan salah satunya, itulah sebabnya "berfungsi" saat Anda menyetelnya, dan "tidak berfungsi" saat Anda menyetel p . Yang terakhir adalah untuk satu ID posting, jadi jika Anda hanya ingin 100, Anda akan menggunakan $query->set('p', 100) . Jika Anda ingin mengembalikan hasil di mana ID posting berada dalam array, Anda menggunakan $query->set('post__in', array(100, 120)) . Kode SQL Anda baru saja mengembalikan ID, jadi daripada mengembalikan objek, Anda bisa mendapatkan array secara langsung - Saya berasumsi bahwa menggemakan judul dan print_r baris hanya debugging:

// get results as a numeric array
$post_ids = $wpdb->get_results($request, ARRAY_N);
// pass post id array to $query
$query->set( 'post__in', $post_ids );

Anda mungkin juga tidak mendapatkan hasil jika ada parameter yang bertentangan yang disetel pada $query . Anda dapat memeriksa nilai ini dengan var_dump($query->query_vars) dan setel apa pun yang mungkin bertentangan ke string kosong - dalam kasus Anda $query->set( 'm', '' );



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara terhubung ke Mysql menggunakan C #?

  2. MASUKKAN beberapa catatan menggunakan ruby ​​pada catatan aktif rel

  3. Doctrine2 - Beberapa sisipan dalam satu kesempatan

  4. Berapa banyak kolom dalam tabel MySQL?

  5. Manakah yang lebih cepat satu kueri besar atau beberapa kueri kecil?