প্রতিটি পোস্ট মেটা কী একাধিক মান থাকতে পারে। সুতরাং আপনি একটি অ্যারে হিসাবে ডিফল্টভাবে মান পেতে; প্রথম এন্ট্রি ( 0) সবচেয়ে পুরনো।
get_post_custom()সমস্ত মানগুলি তাদের মান সহ নিয়ে আসে। আপনি আপনার কোডটি এর সাথে সহজ করতে পারেন:
$price = get_post_meta( $post->ID, 'price', TRUE );
$comake = get_post_meta( $post->ID, 'coMake', TRUE );
যখন সর্বশেষ প্যারামিটারটি get_post_meta()হয় TRUE, তখন ওয়ার্ডপ্রেস একটি একক মান প্রদান করবে: প্রদত্ত কীটির জন্য পোস্ট মেটা মানের প্রথম প্রবেশ entry
প্রথম কলটি সেই পোস্ট আইডির জন্য সমস্ত মেটা মান ব্যাকগ্রাউন্ডে get_post_meta()আনবে এবং ক্যাশে করবে , সুতরাং পরে কলগুলি অতিরিক্ত ডাটাবেস কোয়েরিতে আসে না।
একটি উদাহরণ
ধরা যাক, আমরা একটি পোস্ট মেটা কী তৈরি করেছি colorএবং এটি একটি পোস্টের জন্য তিনটি পৃথক মান দিয়ে পূরণ করি । তারপরে আমরা কী দিয়ে একই কাজ করি age।
add_action( 'wp_loaded', function() {
foreach ( array ( 'blue', 'red', 'yellow' ) as $color )
add_post_meta( 561, 'color', $color, FALSE );
foreach ( array ( '14', '40', '104' ) as $age )
add_post_meta( 561, 'age', $age, FALSE );
});
শেষ প্যারামিটারটি FALSEওয়ার্ডপ্রেসকে বলেছে যে এই মেটা কীটি অনন্য করে তুলবে না - পরিবর্তে একটি কী এর জন্য একাধিক মানকে অনুমতি দেবে।
আমাদের postmetaটেবিলের ফলাফল কাঠামো এর মতো দেখাবে:

প্রতিটি সারিতে একটি স্বতন্ত্র বৈশিষ্ট্য রয়েছে meta_idতবে প্রত্যেকটির post_idএকাধিক meta_keyগুলি meta_keyথাকতে পারে এবং প্রত্যেকের একাধিক meta_valueগুলি থাকতে পারে।
এখন আসুন 561 পোস্টের জন্য সমস্ত কাস্টম মান আনুন:
add_action( 'shutdown', function(){
$custom = get_post_custom( 561 );
print '<pre>' . esc_html( var_export( $custom, TRUE ) ) . '</pre>';
});
ফলাফল:
array (
'_edit_last' =>
array (
0 => '1',
),
'_edit_lock' =>
array (
0 => '1367617428:1',
),
'color' =>
array (
0 => 'blue',
1 => 'red',
2 => 'yellow',
),
'age' =>
array (
0 => '14',
1 => '40',
2 => '104',
),
)
_edit_lastএবং _edit_lockওয়ার্ডপ্রেস ইন্টার্নাল হয়, আমরা মুহূর্তের জন্য এটি উপেক্ষা। কেবলমাত্র নোট করুন, আমরা এই মানগুলি একটি অ্যারেও পাই, যদিও একটি মাত্র মান রয়েছে।
colorএবং ageসমস্ত পোস্ট মেটা মানগুলির মতো অ্যারে হয়।
$custom['color'][0]হয় blue।
এখন আমরা এর সাথে কেবল রঙটি এনেছি get_post_meta():
add_action( 'shutdown', function(){
$color = get_post_meta( 561, 'color' );
print '<pre>' . esc_html( var_export( $color, TRUE ) ) . '</pre>';
});
ফলাফল:
array (
0 => 'blue',
1 => 'red',
2 => 'yellow',
)
আমরা আমাদের মেটা মানগুলির এক টুকরো এখানে পাই। $color[0]এখনও blue। পর্দার আড়ালে, ওয়ার্ডপ্রেস ইতিমধ্যে সমস্ত কাস্টম মান নিয়েছে, তাই এর জন্য পরবর্তী হিট ageক্যাশে থেকে পরিবেশন করা হবে।
পারফরম্যান্সের ক্ষেত্রে get_post_custom()এবং get_post_meta()সমান।
শেষ চেষ্টা: get_post_meta()একক মান হিসাবে রঙ পান Get
add_action( 'shutdown', function(){
$color = get_post_meta( 561, 'color', TRUE );
print '<pre>' . esc_html( var_export( $color, TRUE ) ) . '</pre>';
});
ফলাফল: blue।
ওয়ার্ডপ্রেস আপনার কোডে যা করেছে তা করেছে: এটি অ্যারে কী নিয়েছে 0এবং স্ট্রিং হিসাবে মানটি ফিরিয়ে দিয়েছে।
এটি সর্বাধিক পঠনযোগ্য বিকল্প, এটি সহজেই কোড লিখতে ব্যবহার করুন।