Home › Forums › Backend Issues (wp-admin) › Reorder ACF Groups (per page basis) › Reply To: Reorder ACF Groups (per page basis)
You can make it kind of work.
As you said the problem is that WP saves the order of boxes per post type so when
used on ‘page’ type post you will have problems when you have different set of fields for the homepage and a generic page.
On a homepage type of page (post) we can set order like:
header, homepage fields
but then when we go to a generic page where we have:
header, generic fields
So when the order is set for the homepage by the user like: header, homepage fields, WP saves this to the metafield meta-box-order_page
and when you go to edit a generic page, WP tries to sort the meta boxes in order: header, homepage fields.
Unfortunately there’s no ‘homepage fields’ group here so it only takes ‘header’ to ‘sorted’ set and the ‘homepage fields’ is left in the group where it was at first and that is ‘high’ priority group, then WP writes the metaboxes starting with ‘high’ then ‘sorted’ groups – this way on generic page we get ‘generic fields’, ‘headers’ and on a homepage ‘hompeage fields’ , ‘headers’.
So the only way I see here is to disable all the sorting for ACF groups, thus leaving them in the initial ‘high’ priority group and relay on the order of the ACF groups in the define ACF groups admin panel section.
As for disabling this I used the mentioned filter:
add_filter('get_user_option_meta-box-order_page', 'removeAcfGroupsFromUserSort', 10, 3);
function removeAcfGroupsFromUserSort($result, $option, $user)
{
if (empty($result) || empty($result['normal'])) return $result;
$metaboxIds = explode(',', $result['normal']);
$metaboxIdsOut = array_filter($metaboxIds, function($metaboxId) {
return (!strstr($metaboxId, 'acf-group'));
});
$result['normal'] = implode(',', $metaboxIdsOut);
return $result;
}
Welcome to the Advanced Custom Fields community forum.
Browse through ideas, snippets of code, questions and answers between fellow ACF users
Helping others is a great way to earn karma, gain badges and help ACF development!
We use cookies to offer you a better browsing experience, analyze site traffic and personalize content. Read about how we use cookies and how you can control them in our Privacy Policy. If you continue to use this site, you consent to our use of cookies.