Field Forge está diseñado para el rendimiento desde cero. Su arquitectura de tablas personalizadas y carga por lotes proporcionan ventajas significativas sobre soluciones basadas en wp_postmeta.
Tabla Personalizada vs PostMeta
| Característica | wp_postmeta (ACF) | wp_fieldforge_values (Field Forge) |
|---|---|---|
| Estructura de consulta | Pares clave-valor, una fila por campo | Filas tipadas con índices dedicados |
| Campos compuestos | Aplanados: repeater_0_title, … | Jerárquicos: parent_id / row_index |
| Filas por repetidor (10×5) | 50+ filas en postmeta | 11 filas en la tabla de valores |
| Carga por lotes | N consultas para N campos | 1 consulta para todos los campos por publicación |
| Integración de caché | Depende de la caché de meta de WordPress | Caché de Objetos integrada con grupo fieldforge |
fieldforge_preload() para Consultas Personalizadas
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();Carga Automática a través de the_posts
Field Forge precarga automáticamente valores para publicaciones en la consulta principal. No se necesita código extra para páginas de archivo estándar, índice de blog o resultados de búsqueda.
Integración de Caché de Objetos
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();—