ব্যক্তিগতভাবে, আমি পোস্টের ধরণে কাস্টম মেটা হ্যান্ডলার যুক্ত করার জন্য নীচের ধরণটি অনুসরণ করতে পছন্দ করি। নীচের সাথে, আপনি কেবল পোস্ট টাইপের মেটা সমর্থন যুক্ত করতে পারেন কেবল সমর্থন টাই (নীচের উদাহরণে 'সাবটাইটেল') যোগ_পোস্ট_টাইপ_সুপুর্ট ('আমার_পোস্ট_টাইপ', 'সাবটাইটেল') কল করে পোস্ট টাইপের সমর্থন অ্যারেতে;
class Subtitle_Meta_Handler {
public function initialize() {
add_action('add_meta_boxes', array($this, 'add_metabox'), 10, 2);
add_action('save_post', array($this, 'update'));
}
public function add_metabox($post_type, $post)
{
if(post_type_supports($post_type, 'subtitle'))
{
add_meta_box('subtitle', 'Subtitle', array($this, 'metabox'), $post_type);
}
}
public function metabox($post)
{
$subtitle = get_post_meta($post->ID, 'subtitle', true);
if(!$subtitle)
{
$subtitle = '';
}
?>
<input type="text" style="width: 70%;" value="<?php echo esc_attr($subtitle);?>" name="subtitle" id="subtitle">
<?php
wp_nonce_field('update_subtitle', 'subtitle_nonce');
}
public function update($post_id)
{
if(wp_is_post_autosave($post_id) || wp_is_post_revision($post_id)) {
return $post_id;
}
if(isset($_REQUEST['subtitle_nonce']) && wp_verify_nonce($_REQUEST['subtitle_nonce'], 'update_subtitle')) {
$subtitle = trim(strip_tags($_REQUEST['subtitle'], '<b><strong><span><a>'));
if(empty($subtitle)) {
delete_post_meta($post_id, 'subtitle');
} else {
update_post_meta($post_id, 'subtitle', $subtitle);
}
}
}
}
add_action('init', array(new Subtitle_Meta_Handler(), 'initialize'));
আশা করি শিগগিরই এরকম কিছু মূল রূপে যুক্ত হবে।