I want to add add_meta_box to specific page type like Page Template, Like Product Template.
I am using this article http://wp.smashingmagazine.com/2011/10/04/create-custom-post-meta-boxes-wordpress/ to try it.
4 s
If your custom page template filename is foobar.php
, you can use 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
}
Personally, I like calling this inside my add_meta_boxes_page
callback, and wrapping it around the add_meta_box()
call itself.
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' );
You’ll just need to instruct users to save the page after assigning the template, so that the meta box appears.