Как добавить add_meta_box к определенному шаблону страницы?

Я хочу добавить add_meta_box к определенному типу страницы, например шаблону страницы, например шаблону продукта.

Я использую эту статью http://wp.smashingmagazine.com/2011/10/04/create-custom-post-meta-boxes-wordpress/, чтобы попробовать ее.

Solutions Collecting From Web of "Как добавить add_meta_box к определенному шаблону страницы?"

Если ваше собственное имя файла шаблона страницы – foobar.php , вы можете использовать get_post_meta() :

 global $post; if ( 'foobar.php' == get_post_meta( $post->ID, '_wp_page_template', true ) ) { // The current page has the foobar template assigned // do something } 

Лично мне нравится называть это внутри моего обратного вызова add_meta_boxes_page и обертывать его вокруг add_meta_box() .

 function wpse82477_add_meta_boxes_page() { global $post; if ( 'foobar.php' == get_post_meta( $post->ID, '_wp_page_template', true ) ) { add_meta_box( $args ); } } add_action( 'add_meta_boxes_page', 'wpse82477_add_meta_boxes_page' ); 

Вам просто нужно указать пользователям сохранить страницу после назначения шаблона, чтобы появился мета-ящик.

Я нашел несколько ошибок с вышеприведенным ответом выше, но я настроил этот вариант ниже, и это помогло – никаких ошибок вообще.

 add_action('add_meta_boxes', 'add_product_meta'); function add_product_meta() { add_meta_box( 'product_meta', // $id 'Product Information', // $title 'display_product_information', // $callback 'page', // $page 'normal', // $context 'high'); // $priority } function display_product_information() { // Add the HTML for the post meta } 

https://paulund.co.uk/display-post-meta-box-specific-page-templates

Чисто

 function mcf_add_custom_metabox() { global $post; if ( $_REQUEST['post'] == 30 ) { add_meta_box( 'shop_editor', ' ', 'mcf_callback', 'page' ); } } add_action( 'add_meta_boxes_page', 'mcf_add_custom_metabox' ); 

У меня есть способ добавить метабокс на определенную страницу, используя идентификатор страницы.