admin管理员组文章数量:1333184
I want to add add_meta_box to specific page type like Page Template, Like Product Template.
I am using this article / to try it.
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/2011/10/04/create-custom-post-meta-boxes-wordpress/ to try it.
Share Improve this question asked Jan 21, 2013 at 12:59 Ajay PatelAjay Patel 6584 gold badges16 silver badges27 bronze badges4 Answers
Reset to default 10If 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.
I found a few bugs with the answer above option above but I customized this option below and it helped - no bugs at all.
add_action('add_meta_boxes', 'add_product_meta');
function add_product_meta()
{
global $post;
if(!empty($post))
{
$pageTemplate = get_post_meta($post->ID, '_wp_page_template', true);
if($pageTemplate == 'page-templates/product-page.php' )
{
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
It's clean
This is a solution with name of the page :
Accueil is the name of the page.
$screens = ['Accueil'];
foreach ($screens as $screen) {
if ( get_the_title() == $screen ) {//condition
add_meta_box(
'accueil_données',
'Informations sur Orchestre',
'metabox_accueil_infos',
'page',
'normal',
'high'
);
}
}
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' );
I got a way to add metabox in specific page using page id.
本文标签: custom fieldHow to add addmetabox to specific Page Template
版权声明:本文标题:custom field - How to add add_meta_box to specific Page Template? 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1742275801a2445170.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论