Bir switch_to_blog()
blog kimliğiyle aradığımda, o blogun gerçekten var olup olmadığını bilmiyorum. İşlev her zaman geri döner TRUE
.
Test durumu:
switch_to_blog( PHP_INT_MAX );
$post = get_post( 1 );
restore_current_blog();
Bu, kullanıcıya maruz kalan veritabanı hatalarına neden olur. Bunu nasıl önleyebilirim?
Gerçek dünya kullanım durumu
Multilingual Press'in baş geliştiricisiydim . Kullanıcı bir yayını çevirdiğinde şöyle bir ekran alır:
Şimdi aşağıdakiler olabilir:
- Yazıyı başarıyla kaydeder ve yazıyı çevirmeye devam eder.
- Başka bir kullanıcı, bir ağ yöneticisi, yazarken Alman blogunu siler.
- O tekrar kaydet vurur ve veritabanı hataları alır.
Bu senaryodan kaçınmak istiyorum. Hedef blogun mevcut olup olmadığını nasıl hızlı bir şekilde kontrol edebilirim ? switch_to_blog()
Birden çok farklı sınıfta çok sık çağırıyorum , bu yüzden hızlı olmalı.
get_post()
sadece bir okuma. Son kaydetme ile bir sonraki düzenleme ekranı yeniden yüklemesi arasında uzun bir duraklama olabilir.
SELECT blog_id FROM {$wpdb->blogs} WHERE site_id = %d AND public = '1' AND archived = '0' AND spam = '0' AND deleted = '0'
wp_cache_switch_to_blog()
, ama yalnızca kalıcı önbellek ile yardımcı olur, sayfadaki WP varsayılanı değil. Her neyse, benim için blogun varlığını nerede kontrol etmek istediğiniz açık değil: Birisi bir blogu sildiğinde ya da birisi farklı bir bloga işaret eden çevrilmiş yayını yazmaya çalıştığında (aynı içeriği başka bir dilde güçlendiriyor)?
$wpdb->blogid;
kancawp_insert_post_data
?