আরও সম্ভাব্য একটি মেটা ভিত্তিক ক্যোয়ারী করার জন্য ডাব্লুপিডিবি ক্লাসে সহায়তার অন্যতম পদ্ধতি ব্যবহার করা একটি সম্ভাব্য পদ্ধতির উপায়। তবে এই ফাংশনগুলির কয়েকটি ব্যবহার করার ক্ষেত্রে সতর্কতা হ'ল আপনি সাধারণত একটি সাধারণ অ্যারের তথ্য ফিরে পান না এবং সাধারণত কেবলমাত্র একটি কলাম বা সারিটির জন্য কল দিলেও অবজেক্টের বৈশিষ্ট্যগুলিতে অযথা উল্লেখ করতে হয়।
অবশ্যই, সমস্ত ক্রিয়াকলাপ এক এবং এক নয় এবং উদ্দেশ্যমূলক উল্লেখ ডাব্লুপিডিবি পদ্ধতিতে চলে যায় , get_col
যা অনুসন্ধান করা তথ্যের একটি সাধারণ ফ্ল্যাট অ্যারে প্রদান করে, আমি বিশেষভাবে এই উল্লেখ করি কারণ নিম্নলিখিত উদাহরণগুলি এই পদ্ধতিটির প্রতি আহ্বান জানাবে ।
ওয়ার্ডপ্রেস - ডাব্লুপিডিবি ডেটা কলাম নির্বাচন করছে
$ wpdb-> get_col ()
এখানে একটি উদাহরণ ফাংশন যা কোনও নির্বাচিত পোস্ট ধরণের, পোস্টের স্থিতির এবং একটি নির্দিষ্ট মেটা কী (বা কম প্রযুক্তিগতভাবে মনের নিজস্ব কাস্টম ফিল্ড) এর সমস্ত পোস্টের জন্য ডাটাবেসকে জিজ্ঞাসা করে।
function get_meta_values( $key = '', $type = 'post', $status = 'publish' ) {
global $wpdb;
if( empty( $key ) )
return;
$r = $wpdb->get_col( $wpdb->prepare( "
SELECT pm.meta_value FROM {$wpdb->postmeta} pm
LEFT JOIN {$wpdb->posts} p ON p.ID = pm.post_id
WHERE pm.meta_key = %s
AND p.post_status = %s
AND p.post_type = %s
", $key, $status, $type ) );
return $r;
}
সুতরাং উদাহরণস্বরূপ, আপনি যদি পোস্টের ধরণের সিনেমাগুলির জন্য কোনও পোস্টের রেটিংয়ের একটি মেটা কী আছে এবং আপনি সেই তথ্যটি একটি ভেরিয়েবলের মধ্যে সঞ্চয় করতে চান তবে এই জাতীয় কলটির একটি উদাহরণ হতে পারে ..
$movie_ratings = get_meta_values( 'rating', 'movies' );
আপনি যদি স্ক্রিনে সেই ডেটা প্রিন্ট করা ছাড়া আর কিছু করতে চান না, পিএইচপি-র ইমপ্লোড ফাংশনটি সেই সাধারণ অ্যারেটিকে ডেটা লাইনে দ্রুত বিভক্ত করতে পারে।
// Print the meta values seperate by a line break
echo implode( '<br />', get_meta_values( 'YOURKEY' ));
আপনি ফিরে আসা ডেটা ব্যবহার করতে পারেন যে কতগুলি পোস্টে এই মেটা মান রয়েছে তা ফেরত দেওয়া ডেটার উপরে একটি সাধারণ লুপ করে এবং গণনার একটি অ্যারে তৈরি করে।
$movie_ratings = get_meta_values( 'rating', 'movies' );
if( !empty( $movie_ratings ) ) {
$num_of_ratings = array();
foreach( $movie_ratings as $meta_value )
$num_of_ratings[$meta_value] = ( isset( $num_of_ratings[$meta_value] ) ) ? $num_of_ratings[$meta_value] + 1 : 1;
}
/*
Result:
Array(
[5] => 10
[9] => 2
)
// ie. there are 10 movie posts with a rating of 5 and 2 movie posts with a rating of 9.
*/
এই যুক্তিটি বিভিন্ন ধরণের ডেটাতে প্রয়োগ করা যেতে পারে এবং বিভিন্ন উপায়ে যে কোনও সংখ্যক কাজের জন্য বাড়ানো যেতে পারে। সুতরাং আমি আশা করি যে আমার উদাহরণগুলি সহায়ক এবং অনুসরণ করার জন্য যথেষ্ট সহজ।