add_action( 'admin_menu', function() {
$page = add_submenu_page(
'edit.php',
'My Page',
'My Page',
'edit',
'ccom_sample_page',
function() {
?>
<div class="wrap">
<?php screen_icon(); ?>
<h1>My Page</h1>
<form name="my_form" method="post">
<input type="hidden" name="action" value="some-action">
<?php
wp_nonce_field( 'some-action-nonce' );
wp_nonce_field( 'meta-box-order', 'meta-box-order-nonce', false );
wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false );
$columns = get_current_screen()->get_columns() == 1 ? 1 : 2;
?>
<div id="poststuff">
<div id="post-body" class="metabox-holder columns-<?php echo $columns; ?>">
<div id="postbox-container-1" class="postbox-container">
<?php do_meta_boxes( '', 'side', null ); ?>
</div>
<div id="postbox-container-2" class="postbox-container">
<?php do_meta_boxes( '', 'normal', null ); ?>
<?php do_meta_boxes( '', 'advanced', null ); ?>
</div>
</div>
</div>
</form>
</div>
<?php
} );
add_action( 'load-' . $page, function() {
do_action( 'add_meta_boxes_' . $page, null );
do_action( 'add_meta_boxes', $page, null );
add_screen_option( 'layout_columns', [ 'max' => 2, 'default' => 2 ] );
wp_enqueue_script( 'postbox' );
} );
add_action( 'admin_footer-' . $page, function() {
?>
<script type="text/javascript">
postboxes.add_postbox_toggles( pagenow );
</script>
<?php
} );
} );
add_action(
'add_meta_boxes',
function() {
add_meta_box(
'sample-box',
'Sample Box',
function() {
echo 'Sample Box Contents';
},
'posts_page_ ccom_sample_page',
'normal', 'high'
);
add_meta_box(
'sample-sidebar',
'Sample Sidebar',
function() {
echo 'Sample Sidebar Content';
},
null, 'side', 'high'
);
}
);
Admin page metaboxes
Render collapsable and moveable metaboxes on an admin page or custom post type.
How to use
- Log into a staging, development, or locally hosted clone of your site
- Install and activate Code Snippets
- WP Admin > Snippets > Add New
- Copy and paste the code from the Description tab above
- Check to ensure formatting came over properly and no syntax errors show up in the editor
- Customize the code as desired
- Add a meaningful title
- Select whether to run on front-end or back-end (or both)
- Click “Save and Activate”
- Test your site to ensure it works
- Disable if any problems, or recover
- Repeat for live environment
License
All code snippets are licensed GPLv2 (or later) matching WordPress licensing.
Disclaimer of warranty:
Except when otherwise stated in writing the copyright holders and/or other parties provide the program as-is without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose.
Support
- Describe the issue and what you’ve observed.
- Describe your expected outcome(s).
- List steps to reproduce the issue.
- Optionally provide screen-shot or video URLs.
- Email to [email protected]
