Field Forge спроектований для продуктивності з самого початку. Його архітектура кастомних таблиць і пакетне завантаження забезпечують значні переваги над рішеннями на основі wp_postmeta.
Кастомна таблиця проти PostMeta
| Особливість | wp_postmeta (ACF) | wp_fieldforge_values (Field Forge) |
|---|---|---|
| Структура запиту | Параметри ключ-значення, один рядок на поле | Типізовані рядки з виділеними індексами |
| Комплексні поля | Сплющені: repeater_0_title, … | Ієрархічні: parent_id / row_index |
| Ряди на повторювач (10×5) | 50+ рядків у postmeta | 11 рядків у таблиці значень |
| Пакетне завантаження | N запитів для N полів | 1 запит для всіх полів на пост |
| Інтеграція кешу | Залежить від кешу мета WordPress | Вбудований об’єктний кеш з групою fieldforge |
fieldforge_preload() для кастомних запитів
php
$query = new WP_Query( [
'post_type' => 'product',
'posts_per_page' => 20,
] );
// Preload all field values in ONE query
$post_ids = wp_list_pluck( $query->posts, 'ID' );
fieldforge_preload( $post_ids );
// Now get_field() calls use cached data -- zero additional queries
while ( $query->have_posts() ) : $query->the_post();
$price = get_field( 'price' ); // From cache
$image = get_field( 'thumbnail' ); // From cache
endwhile;
wp_reset_postdata();Авто-попереднє завантаження через the_posts
Field Forge автоматично попередньо завантажує значення для постів у основному запиті. Ніякого додаткового коду не потрібно для стандартних архівних сторінок, індексу блогу або результатів пошуку.
Інтеграція об’єктного кешу
php
$stats = FIELDFORGE_Performance::instance()->get_stats();
/*
Returns:
[
'total_values' => 1523,
'total_posts' => 87,
'total_groups' => 5,
'preloaded_posts' => 10,
'object_cache' => 'active',
'cache_group' => 'fieldforge',
]
*/
// Manual cache flush
FIELDFORGE_Performance::instance()->flush_all();—