Saya menjalankan jaringan multisite dan saya telah menyiapkan kueri sql yang menggunakan swith_to_blog (); dan menanyakan posting.
Apakah ada cara saya dapat mendeklarasikan kueri di dalam WP_Query baru dan benar-benar menggabungkan kueri itu dengan yang lain?
Pada dasarnya jika saya melakukan ini:
$number1 = new WP_Query($multisitequery);
Bisakah saya menggabungkannya dengan:
$number2 = new WP_Query($normalquery);
$normalquery
menyimpan pengaturan seperti pagination, per halaman, kutipan, judul dll ... pada kode pendek portofolio.
Saya ingin menyertakan posting $multisite
pertanyaan dari permintaan baru saya .
Bisakah ini tercapai? Hanya ingin menyelamatkan saya dari membuat lol setup kode pendek yang sama sekali baru
Banyak terima kasih sebelumnya. Rory
Sunting ========
Apa yang saya miliki adalah:
$portfolio = array();
$portfolio = $settings;
Lebih jauh ke bawah fungsi portofolio saya "setelah semua $ pengaturan ['opsi']" saya punya:
$portfolio_query = new WP_Query( $portfolio );
yang $portfolio_query
menggunakan loop pada halaman template.
Saya ingin menambahkan kueri tambahan ke dalam seperti ini:
global $wpdb, $blog_id, $post;
$blogs = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM wp_blogs ORDER BY blog_id" ) );
$globalcontainer = array();
foreach ($blogs as $blog){
switch_to_blog($blog->blog_id);
$globalquery = query_posts($args);
$globalcontainer = array_merge( $globalcontainer, $globalquery );
restore_current_blog();
}
di mana saya menganggap itu $globalcontainer
akan menjadi array untuk bergabung ke dalam wp_query();
.
Jadi, dengan mengikuti jawaban Anda, secara teori saya bisa dengan mudah:
$mergedqueryargs = array_merge($portfolio , $globalcontainer);
$portfolio_query = new WP_query($mergedqueryargs);
Apakah itu benar?
Kedua, mengenai kunci array array_merge menimpa ..... Bagaimana saya tentang menghentikan overwrite?
Saya biasanya menggabungkan array ID mereka dan membuat kueri ketiga. Untuk menjaga agar set pertama kueri tetap murah, saya hanya mengembalikan ID mereka menggunakan parameter bidang seperti ini:
Semoga ini membantu
--- EDIT ---
Setelah jawaban saya pertanyaan asli diedit untuk detail multisite. Dalam kasus penggabungan pos multisite, ini tidak berfungsi.
sumber
'orderby' => 'post__in'
di kueri terakhir.Jadi, jika Anda memiliki ini:
Saya menganggap Anda mendefinisikan ini di suatu tempat sebelumnya?
... dalam hal ini, untuk menggabungkan dua permintaan, hanya
array_merge()
dua array sebelum meneruskannya kenew WP_Query()
:Perhatikan bahwa urutan penting dalam
array_merge()
panggilan. Jika keduanya memiliki kunci array yang sama, array kedua akan menimpa array pertama.sumber