প্রতিটি পোস্ট মেটা কী একাধিক মান থাকতে পারে। সুতরাং আপনি একটি অ্যারে হিসাবে ডিফল্টভাবে মান পেতে; প্রথম এন্ট্রি ( 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
এবং স্ট্রিং হিসাবে মানটি ফিরিয়ে দিয়েছে।
এটি সর্বাধিক পঠনযোগ্য বিকল্প, এটি সহজেই কোড লিখতে ব্যবহার করুন।