Field Forge ist von Grund auf für Leistung ausgelegt. Seine benutzerdefinierte Tabellenarchitektur und das Batch-Laden bieten erhebliche Vorteile gegenüber wp_postmeta-basierten Lösungen.
Benutzerdefinierte Tabelle vs PostMeta
| Funktion | wp_postmeta (ACF) | wp_fieldforge_values (Field Forge) |
|---|---|---|
| Abfrage-Struktur | Schlüssel-Wert-Paare, eine Zeile pro Feld | Typisierte Zeilen mit speziellen Indizes |
| Zusammengesetzte Felder | Abgeflacht: repeater_0_title, … | Hierarchisch: parent_id / row_index |
| Zeilen pro Wiederholer (10×5) | 50+ Zeilen in Postmeta | 11 Zeilen in der Wertetabelle |
| Batch-Laden | N Abfragen für N Felder | 1 Abfrage für alle Felder pro Beitrag |
| Cache-Integration | Beruht auf WordPress-Meta-Cache | Eingebauter Objekt-Cache mit fieldforge Gruppe |
fieldforge_preload() für benutzerdefinierte Abfragen
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();Auto-Preload über the_posts
Field Forge lädt automatisch Werte für Beiträge in der Hauptabfrage vor. Kein zusätzlicher Code erforderlich für Standard-Archivseiten, Blog-Index oder Suchergebnisse.
Objekt-Cache-Integration
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();—