Chuyển đổi các trường ACF được đăng ký bởi PHP sang định dạng JSON có thể Import

Khi sử dụng plugin WordPress Advanced Custom Fields, bạn có thể cần chuyển đổi giữa các trường tùy chỉnh đã đăng ký bởi PHP và các trường đã đăng ký JSON.

Trong plugin ACF, nó cho phép chúng ta đăng ký các trường bằng PHP. Chỉ cần sao chép và dán mã sau vào tệp functions.php của theme hoặc đưa nó vào tệp bất kỳ rồi include vào.

Custom Fields -> Tools -> Select Field Groups -> Generate PHP

Ưu điểm của cách này đó là tránh mất fields trong trường hợp không đáng có hoặc tránh việc người dùng xoá sửa các fields làm sai sót dữ liệu.

Nhưng ngược lại, nó cũng có nhược điểm. Khi chúng ta generate ra PHP sau đó xoá luôn options, thì chúng ta không thể chỉnh sửa, thêm xoá sửa các fields trong trường hợp cần thay đổi logic code.

Vì vậy đoạn code sau giúp bạn convert ngược PHP sang định dạng JSON có thể import, giúp bạn có thể chỉnh sửa các fields mong muốn.

<?php

$groups = acf_get_local_field_groups();
$json = [];

foreach ($groups as $group) {
    // Fetch the fields for the given group key
    $fields = acf_get_local_fields($group['key']);

    // Remove unecessary key value pair with key "ID"
    unset($group['ID']);

    // Add the fields as an array to the group
    $group['fields'] = $fields;

    // Add this group to the main array
    $json[] = $group;
}

$json = json_encode($json, JSON_PRETTY_PRINT);
// Optional - echo the JSON data to the page
echo "<pre>";
echo $json;
echo "</pre>";

// Write output to file for easy import into ACF.
// The file must be writable by the server process. In this case, the file is located in
// the current theme directory.
$file = get_template_directory() . '/acf-import.json';
file_put_contents($file, $json );

?>

Sau khi chạy đoạn code trên, bạn mở folder theme sẽ thấy 1 file acf-import.json. Bạn có thể dùng file này import bình thường như các file json của plugin ACF.

Chúc các bạn thành công!

WordPress Gutenberg Block Server Side Render Add, Upload image trong Gutenberg Block Development Tạo Block Controls – Block Toolbar và Settings Sidebar trong WordPress Gutenberg Làm quen với các components thường dùng khi tạo Gutenberg Block Gutenberg Block Attributes Cách tạo Gutenberg Block trong WordPress Tổng quan về Gutenberg trong WordPress Thêm Form tuỳ chỉnh tính giá sản phẩm trong Woocommerce WordPress Giải pháp search nhanh như điện xẹt cho trang web WordPress với Algolia Kích hoạt Gutenberg cho Custom Post Types trong WordPress 5+

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.