Advertisement
Guest User

Metabox register

a guest
Feb 5th, 2018
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 7.58 KB | None | 0 0
  1. <?php
  2. /**
  3.  * Register Meta Box fields
  4.  */
  5. if ( class_exists('RW_Meta_Box') ) {
  6.     add_filter( 'rwmb_meta_boxes', 'mytheme_register_meta_boxes' );
  7. }
  8.  
  9. function mytheme_register_meta_boxes( $meta_boxes ){
  10.     $prefix = 'mytheme_';
  11.  
  12.     // Page builder
  13.     $meta_boxes[] = array(
  14.         'id'       => $prefix . 'page-builder',
  15.         'title'    => esc_html__( 'Page Builder', 'mytheme' ),
  16.         'pages'    => array( 'page' ),
  17.         'context'  => 'normal',
  18.         'priority' => 'high',
  19.         'show'     => array(
  20.             'template'    => array( 'page-builder.php' ),
  21.         ),
  22.  
  23.         'fields' => array(
  24.             array(
  25.                 'id'            => $prefix . 'pb-section',
  26.                 'type'          => 'group',
  27.                 'collapsible'   => true,
  28.                 'clone'         => true,
  29.                 'max_clone'     => 100,
  30.                 'group_title'   => array(
  31.                     'field'     => $prefix . 'pb-section-select',
  32.                 ),
  33.                 'sort_clone'    => true,
  34.                 'save_state'    => true,
  35.                 // List of sub-fields
  36.                 'fields' => array(
  37.                     array(
  38.                         'name'          => esc_html__('Section', 'mytheme'),
  39.                         'id'            => $prefix . 'pb-section-select',
  40.                         'type'          => 'select',
  41.                         'placeholder'   => esc_html__( 'Select a section', 'mytheme' ),
  42.                         'options'       => array(
  43.                             'ft-slider' => esc_html__( 'Featured Slider', 'mytheme' ),
  44.                             'with-sidebar' => esc_html__( 'With Sidebar Section', 'mytheme' ),
  45.                         ),
  46.                     ),
  47.                     // #Featured Slider fields.
  48.                     array(
  49.                         'id'            => $prefix . 'pb-ft-slider-configs',
  50.                         'type'          => 'group',
  51.                         'group_title'   => false,
  52.                         'visible'       => array( $prefix . 'pb-section-select', '=', 'ft-slider' ),
  53.                         // List of sub-fields
  54.                         'fields' => array(
  55.                             array(
  56.                                 'id'       => $prefix . 'pb-ft-slider-post-source',
  57.                                 'name'     => esc_html__( 'Posts Source', 'mytheme' ),
  58.                                 'type'     => 'button_group',
  59.                                 'options'  => array(
  60.                                     'latest'        => esc_html__( 'Latest', 'mytheme' ),
  61.                                     'by-cats'       => esc_html__( 'By categories', 'mytheme' ),
  62.                                     'by-tags'       => esc_html__( 'By tags', 'mytheme' ),
  63.                                     'manually'      => esc_html__( 'Select manually', 'mytheme' ),
  64.                                 ),
  65.                                 'inline'   => true,
  66.                                 'std'      => 'latest',
  67.                             ),
  68.                             array(
  69.                                 'id'            => $prefix . 'pb-ft-slider-cats',
  70.                                 'name'          => esc_html__( 'Categories Select', 'mytheme' ),
  71.                                 'placeholder'   => esc_html__( 'Select categories', 'mytheme' ),
  72.                                 'type'          => 'taxonomy',
  73.                                 'taxonomy'      => 'category',
  74.                                 'field_type'    => 'select_advanced',
  75.                                 'multiple'      => true,
  76.                                 'query_args'    => array(
  77.                                     'hide_empty'    => true,
  78.                                 ),
  79.                                 'visible'       => array( $prefix . 'pb-ft-slider-post-source', '=', 'by-cats' ),
  80.                             ),
  81.                             array(
  82.                                 'id'            => $prefix . 'pb-ft-slider-tags',
  83.                                 'name'          => esc_html__( 'Tags Select', 'mytheme' ),
  84.                                 'placeholder'   => esc_html__( 'Select tags', 'mytheme' ),
  85.                                 'type'          => 'taxonomy',
  86.                                 'taxonomy'      => 'post_tag',
  87.                                 'field_type'    => 'select_advanced',
  88.                                 'multiple'      => true,
  89.                                 'query_args'    => array(
  90.                                     'hide_empty'    => true,
  91.                                 ),
  92.                                 'visible'       => array( $prefix . 'pb-ft-slider-post-source', '=', 'by-tags' ),
  93.                             ),
  94.                             array(
  95.                                 'id'            => $prefix . 'pb-ft-slider-posts',
  96.                                 'name'          => esc_html__( 'Posts Select', 'mytheme' ),
  97.                                 'placeholder'   => esc_html__( 'Select posts', 'mytheme' ),
  98.                                 'type'          => 'post',
  99.                                 'post_type'     => 'post',
  100.                                 'field_type'    => 'select_advanced',
  101.                                 'multiple'      => true,
  102.                                 'query_args'    => array(
  103.                                     'post_status'    => 'publish',
  104.                                     'posts_per_page' => 100,
  105.                                 ),
  106.                                 'visible'       => array( $prefix . 'pb-ft-slider-post-source', '=', 'manually' ),
  107.                             ),
  108.                         ),
  109.                     ),
  110.                     // #Content with sidebar section.
  111.                     array(
  112.                         'id'            => $prefix . 'pb-section-main-col',
  113.                         'type'          => 'group',
  114.                         'collapsible'   => true,
  115.                         'clone'         => true,
  116.                         'max_clone'     => 100,
  117.                         'group_title'   => array(
  118.                             'field'     => $prefix . 'pb-section-main-col-select',
  119.                         ),
  120.                         'sort_clone'    => true,
  121.                         'save_state'    => true,
  122.                         'visible'       => array( $prefix . 'pb-section-select', '=', 'with-sidebar' ),
  123.                         // List of sub-fields
  124.                         'fields' => array(
  125.                             array(
  126.                                 'name'          => esc_html__('Section', 'mytheme'),
  127.                                 'id'            => $prefix . 'pb-section-main-col-select',
  128.                                 'type'          => 'select',
  129.                                 'placeholder'   => esc_html__( 'Select a layout', 'mytheme' ),
  130.                                 'options'       => array(
  131.                                     'posts-listing' => esc_html__( 'Posts Listing', 'mytheme' ),
  132.                                     'slider' => esc_html__( 'Slider', 'mytheme' ),
  133.                                 ),
  134.                             ),
  135.                         ),
  136.                     ),
  137.                 ),
  138.             ),
  139.         ),
  140.     );
  141.  
  142.     return $meta_boxes;
  143. }
  144.  
  145. /**
  146.  * Hide post content editor in page builder template.
  147.  */
  148. add_filter( 'rwmb_outside_conditions', function( $conditions ) {
  149.     $conditions[ '.postarea' ] = array(
  150.         'hidden' => array( 'page_template', 'page-builder.php' )
  151.     );
  152.     return $conditions;
  153. } );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement