Install
Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/turnermike/hi-hat-acf-metabox-ordering/releases/download/v1.1.0/hi-hat-acf-metabox-ordering.zipA WordPress plugin that applies a global ACF metabox ordering set by the site administrator to all users.
Works on both standard WordPress installations and WordPress Multisite networks.
Description
By default, WordPress stores metabox ordering per-user. This means if an admin rearranges ACF field group meta boxes on a page, other users won't see that order—each user has their own independent arrangement.
This plugin solves that problem by capturing the admin's preferred metabox order and applying it globally to all users on the site, including Editors, Contributors, Authors, and any custom roles. This ensures consistent metabox layouts across all editors, regardless of individual user preferences.
Multisite Compatible ✅ - Each site in a multisite network maintains its own metabox ordering configuration.
How It Works
- Selective Activation: Configure which post types should use global metabox ordering in Tools → Metabox Ordering
- Automatic Capture: When an administrator rearranges ACF metaboxes on an enabled post type, the plugin automatically captures and stores that order
- Global Enforcement: All subsequent user sessions see metaboxes in the order set by the admin, overriding per-user preferences
Installation
From WordPress.org Plugin Repository
- Go to Plugins → Add New in your WordPress admin
- Search for "Hi-hat ACF Metabox Ordering"
- Click Install Now and then Activate
Manual Installation
- Download the latest release from GitHub Releases
- Extract the ZIP file and upload the
hi-hat-acf-metabox-orderingfolder to/wp-content/plugins/ - Activate the plugin through the Plugins menu in WordPress
- Go to Tools → Metabox Ordering and select which post types should use global ordering
- As an administrator, arrange ACF metaboxes as desired—the order is automatically captured
From Source (Development)
git clone https://github.com/miketurner/hi-hat-acf-metabox-ordering.git
cd hi-hat-acf-metabox-ordering
composer install # if using vendor dependencies
npm install # if using build tools
Configuration
Enabling Post Types
After activation, navigate to Tools → Metabox Ordering to:
- See all available post types (Pages, Posts, Custom Post Types, etc.)
- Check the boxes for post types that should enforce global metabox ordering
- Save your settings
Only administrators can access this settings page.
Setting the Global Order
- Go to the edit screen for any enabled post type
- Rearrange the ACF metaboxes by dragging them
- The order is automatically captured and will apply to all users
Requirements
- WordPress 5.0+
- Advanced Custom Fields (ACF) Pro or Free version
- PHP 7.2+
Frequently Asked Questions
Role Behavior
Who can SET the global metabox order?
- Only Administrators (users with
manage_optionscapability) can set the global order - Simply rearrange metaboxes on an enabled post type as an admin, and the plugin automatically captures the order
Who SEES the global metabox order?
- All users see the admin-set global order on enabled post types:
- ✅ Administrators
- ✅ Editors
- ✅ Contributors
- ✅ Authors
- ✅ Custom roles with post-editing capabilities
Q: Can I choose which post types use global ordering?
A: Yes! Go to Tools → Metabox Ordering and select which post types should enforce the global order. Unselected post types will continue to use per-user metabox ordering.
Q: Can individual users customize their own metabox order?
A: No. For post types with global ordering enabled, all users see the admin-set order. Individual user preferences are overridden.
Q: How do I change the global order?
A: Simply log in as an admin, rearrange the metaboxes on an enabled post type, and the new order will be captured and applied to all users.
Q: Does this work with multisite?
A: Yes! The plugin works perfectly with both standard WordPress installations and WordPress Multisite networks. Each site maintains its own post type settings and metabox orders. Changes on one site don't affect others.
Q: Can I reset the plugin to default behavior?
A: Deactivate the plugin in Tools → Metabox Ordering (uncheck all post types), or delete it entirely to restore per-user metabox ordering.
Technical Details
Storage
- Settings - Stored per-site in
wp_optionsunder keyhihat_enabled_post_types - Metabox Orders - Stored per-site in
wp_optionsunder keyhihat_acf_metabox_order
Multisite
In multisite networks, each site maintains separate settings and metabox orders. Changes on one site don't affect others.
Hooks
update_user_metadata(priority 10) — Captures metabox order changes when admin rearrangesget_user_metadata(priority 10) — Retrieves global order for all users instead of per-user preference
Support
For issues or feature requests, please:
- Report Issues: GitHub Issues
- Contact Support: Hi-hat Consulting
- Submit PRs: Contributions are welcome! Please create a pull request with your changes
License
This plugin is licensed under the GPL v2 or later. See LICENSE for details.
Contributing
We welcome contributions! Please follow these guidelines:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Development Setup
# Install dependencies
composer install
npm install
# Run tests
npm run test
# Build distribution
./build.sh
Releases
Creating a Release
To create a new release for distribution:
1. Update Version Numbers
Update the version in the plugin files:
# Edit the main plugin file
nano hihat-acf-metabox-ordering.php
# Update: Version: X.Y.Z
# Edit the readme
nano readme.txt
# Update: Stable tag: X.Y.Z
2. Commit and Tag
# Commit the version update
git add .
git commit -m "Bump version to X.Y.Z"
git push origin main
# Create a Git tag
git tag -a vX.Y.Z -m "Version X.Y.Z - Brief description of release"
# Push the tag to GitHub
git push origin vX.Y.Z
3. Build Distribution
# Build the production-ready zip file
./build.sh
# This creates: dist/hi-hat-acf-metabox-ordering.zip
4. Create GitHub Release
Option A: Using GitHub CLI (if installed)
gh release create vX.Y.Z \
--title "Version X.Y.Z - Release Title" \
--notes "Release notes and feature list here" \
dist/hi-hat-acf-metabox-ordering.zip
Option B: Via GitHub Web Interface
- Visit:
https://github.com/miketurner/hi-hat-acf-metabox-ordering/releases - Click "Create a new release"
- Select tag:
vX.Y.Z - Add release title and description
- Upload the zip file from
dist/folder - Click "Publish release"
Example Release Command
# Complete release workflow
git tag -a v1.0.1 -m "Version 1.0.1 - Bug fixes"
git push origin v1.0.1
./build.sh
gh release create v1.0.1 \
--title "Version 1.0.1 - Bug Fixes" \
--notes "Improved metabox ordering stability and performance" \
dist/hi-hat-acf-metabox-ordering.zip
Semantic Versioning
Releases follow semantic versioning (MAJOR.MINOR.PATCH):
v1.0.0— Initial public releasev1.0.1— Patch release (bug fixes only)v1.1.0— Minor release (new features, backward compatible)v2.0.0— Major release (breaking changes)
Author: Mike Turner - Hi-hat Consulting
Made with ❤️ for WordPress developers
Changelog
1.0.0
- Initial release
- Automatic capture of admin metabox ordering
- Per-post-type configuration via settings page
- Global enforcement across all users
- WordPress multisite support
Releases
1 release. Each count is every asset in that release; expand a row for the breakdown.