আমি যখন switch_to_blog()
কোনও ব্লগ আইডি দিয়ে কল করি তখন আমি জানি না যে সেই ব্লগটি আসলে রয়েছে কিনা। ফাংশন সর্বদা ফিরে আসে TRUE
।
পরীক্ষা ক্ষেত্রে:
switch_to_blog( PHP_INT_MAX );
$post = get_post( 1 );
restore_current_blog();
এটি ব্যবহারকারীর সামনে থাকা ডাটাবেস ত্রুটিগুলির ফলস্বরূপ। আমি কীভাবে এটি প্রতিরোধ করতে পারি?
রিয়েল ওয়ার্ল্ড ইউজ কেস
আমি বহুভাষিক প্রেসের প্রধান বিকাশকারী ছিলাম । যখন কোনও ব্যবহারকারী কোনও পোস্ট অনুবাদ করে, তখন সে এর মতো একটি স্ক্রিন পায়:
এখন নিম্নলিখিতটি ঘটতে পারে:
- তিনি পোস্টটি সাফল্যের সাথে সংরক্ষণ করেন এবং পোস্টটির অনুবাদ করা চালিয়ে যান।
- আরেকজন ব্যবহারকারী, একটি নেটওয়ার্ক অ্যাডমিন, জার্মান ব্লগটি লেখার সময় মুছে ফেলেন।
- সে আবার সেভ হিট করে এবং ডাটাবেস ত্রুটি পায়।
আমি সেই দৃশ্য এড়াতে চাই টার্গেট ব্লগ উপস্থিত থাকলে আমি কীভাবে দ্রুত পরীক্ষা করতে পারি ? আমি switch_to_blog()
প্রায়শই একাধিক বিভিন্ন ক্লাসে কল করি , তাই এটি দ্রুত হতে হবে।
get_post()
কেবল পঠনযোগ্য। শেষ সংরক্ষণ এবং পরবর্তী সম্পাদনা স্ক্রিন পুনরায় লোডের মধ্যে একটি দীর্ঘ বিরতি থাকতে পারে।
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()
, তবে এটি কেবল ধনাত্মক ক্যাশে সহায়তা করে, পৃষ্ঠায় ডাব্লুপিপিতে কোনও ডিফল্ট নয়। যাইহোক, আমার কাছে এটি স্পষ্ট নয় যে আপনি কোথায় ব্লগের অস্তিত্ব পরীক্ষা করতে চান: যখন কেউ কোনও ব্লগ মুছে ফেলেন বা যখন কোনও অনুবাদিত পোস্ট লেখার চেষ্টা করে যা কোনও ভিন্ন ব্লগের (অন্য ভাষায় একই বিষয়বস্তুতে শক্তিশালীকরণ) নির্দেশ করে?
$wpdb->blogid;
এবং হুকwp_insert_post_data
?