如何使WordPress的元框具体到一个页面模板?(How to make WordPress me

2019-09-28 02:23发布

下面是一些代码,我有元盒,有这个限制像一个单一的页面模板任何特定的方式template-servicesinner.phppage-plain.php

$prefix = 'tga_';

$meta_boxes[] = array(
'id' => 'project-box-1',    // meta box id, unique per meta box
'title' => 'Project Box 1', // meta box title
'pages' => array('page'),   // post types, accept custom post types as well, default is     array('post'); optional
'context' => 'normal',      // where the meta box appear: normal     (default), advanced, side; optional
'priority' => 'high',       // order of meta box: high (default), low; optional
'fields' => array(
    array(
        'name' => 'Review thumbnail',
        'desc' => 'Only insert a thumbnail for you review here if you are showing reviews on the homepage (thumbnail should be at least 600x300px). Insert full path to the image, eg. http://yoursite.com/thethumb.jpg',
        'id' => $prefix . 'review_thumb',
        'type' => 'text',
        'std' => ''
    ),

Answer 1:

所述metabox的隐藏/显示需要改变下拉场之后选择“更新”。

function add_meta_box() {
    global $post;
    if(!empty($post)) {
        $pageTemplate = get_post_meta($post->ID, '_wp_page_template', true);

        if($pageTemplate == 'your-page-template-here.php' ) {
            add_meta_box( $id, $title, $callback, 'page', $context, $priority, $callback_args );
        }
    }
}
add_action( 'add_meta_boxes', 'add_meta_box' );

如所期望只需更新线6和7。



Answer 2:

就在这里。 而最用户友好的方式使用jQuery做。 你必须听下拉变化#page_template 。 并在页面加载运行相同的功能, 如果模板==东西,显示/隐藏元框

这些脚本加载wp_footer-$hookadmin_print_scripts-$hook 。 它已被覆盖在下面的WordPress的答案 :

  • 选择模板时显示的自定义元框

  • 切换管理metabox根据选择的页面模板



文章来源: How to make WordPress meta boxes specific to a page template?
标签: php wordpress