WordPress | カスタムフィールドのメタボックスのソート順設定の削除と設定

`Advanced Custom Fields PRO` と `Smart Custom Fields` を併用しているWordPressサイトで投稿ページに各プラグインから追加したメタボックスの表示順の操作が意図した動作をしませんでした。

全てのユーザーで同じ状態にするため少々強引ですが、毎回メタボックスのソート順の設定を削除してから再設定するようにしました。

メタボックスのソート順設定の削除と設定

/**
 * メタボックスのソート順設定の削除と設定
 */
function reset_and_set_meta_box_order()
{
    // ユーザーIDを取得
    $user_id = wp_get_current_user()->ID;

    // メタボックスのソートデータを削除
    delete_user_meta($user_id, 'meta-box-order_post');

    // メタボックス表示順
    $id_list = [
        'acf_after_title' => [
            'smart-cf-custom-field-17124',
            'acf-group_5c449482a2cf0',
            'acf-group_5c443b930da0a',
            'acf-group_5c4413dea85e8'
        ],
        'normal' => [
            'smart-cf-custom-field-4',
            'smart-cf-custom-field-5',
            'smart-cf-custom-field-10',
            'acf-group_5b79794b826bc',
            'acf-group_65b93e3525a78'
        ],
        'side' => [
            'submitdiv',
            'A2A_SHARE_SAVE_meta',
            'postimagediv',
            'authordiv'
        ]
    ];

    // 
    $order_data = [];

    // 
    $order_data['acf_after_title'] = implode(',', $id_list['acf_after_title']);
    $order_data['normal']          = implode(',', $id_list['normal']);
    $order_data['side']            = implode(',', $id_list['side']);

    // ソートデータ更新(設定)
    update_user_meta($user_id, 'meta-box-order_post', $order_data);
}
add_action('admin_init', 'reset_and_set_meta_box_order');

動作環境情報

"へテムル" 
"PHP" 7.4.33
"MySQL" 5.7
"WordPress" 6.2
"Advanced Custom Fields PRO" 5.7.4
"Smart Custom Fields" 4.2.2

関連記事

コメント

タイトルとURLをコピーしました