Якщо ваш сайт використовує Meta Box для користувацьких полів, Field Forge може забезпечити ручний/бета шлях міграції. Meta Box зберігає багато значень у wp_postmeta, використовуючи стандартні пари meta_key/meta_value, але метадані розширення, групи, визначені конструктором, правила розташування та користувацькі зворотні виклики повинні бути перевірені для кожного сайту перед тим, як стверджувати про повну міграцію в один клік.
Виявлення
php
// Check for Meta Box data in postmeta
global $wpdb;
$meta_box_groups = $wpdb->get_results(
"SELECT DISTINCT meta_key FROM {$wpdb->postmeta}
WHERE meta_key NOT LIKE '\_%'
AND meta_key NOT LIKE 'field\_%'
ORDER BY meta_key"
);Стратегія міграції
- Створіть відповідні групи полів у Field Forge з тими ж назвами полів.
- Перенесіть значення з
wp_postmetaдо таблиці значень Field Forge. - Перевірте шаблони — оскільки Field Forge підтримує
get_field(), оновіть будь-які викликиrwmb_meta().
php
// Batch migrate Meta Box values to Field Forge
function migrate_meta_box_to_fieldforge( $post_type, $field_names ) {
$posts = get_posts( [ 'post_type' => $post_type, 'numberposts' => -1, 'fields' => 'ids' ] );
foreach ( $posts as $post_id ) {
foreach ( $field_names as $name ) {
$value = get_post_meta( $post_id, $name, true );
if ( '' !== $value && null !== $value ) {
update_field( $name, $value, $post_id );
}
}
}
}
// Usage
migrate_meta_box_to_fieldforge( 'product', [ 'price', 'sku', 'description', 'gallery' ] );Оновлення шаблонів
Замініть виклики функцій Meta Box на еквіваленти Field Forge:
php
// Before (Meta Box)
$value = rwmb_meta( 'price' );
$images = rwmb_meta( 'gallery', [ 'size' => 'large' ] );
// After (Field Forge)
$value = get_field( 'price' );
$images = get_field( 'gallery' ); // Returns array based on return_format—