31. Mejores Prácticas de Caché | Field Forge - Campos personalizados, diseñados para la velocidad
Descargar Iniciar sesión

31. Mejores Prácticas de Caché

Estrategias para maximizar la eficiencia de la caché con Field Forge.

Cuándo Usar Sincronización de PostMeta

Si los plugins de terceros requieren valores de campo en wp_postmeta:

php
add_action( 'fieldforge/value_updated', function( $post_id, $field_name ) {
    $sync_fields = [ 'price', 'sale_price', 'sku', 'stock_quantity' ];
    if ( in_array( $field_name, $sync_fields, true ) ) {
        $value = FIELDFORGE_Field_Values::instance()->get_value( $field_name, $post_id );
        update_post_meta( $post_id, '_' . $field_name, $value );
    }
}, 10, 2 );

Invalidación de Caché

Las cachés se invalidan automáticamente cuando:

  • Se actualiza un valor de campo (acción fieldforge/value_updated)
  • Se eliminan todos los valores de una publicación (acción fieldforge/values_deleted)
  • Se guarda o elimina un grupo de campos

Evitando Consultas N+1

php
// Bad: N+1 queries
$ids = [1, 2, 3, 4, 5];
foreach ( $ids as $id ) {
    $price = get_field( 'price', $id ); // 1 query each = 5 queries
}

// Good: Preload then access
fieldforge_preload( $ids );
foreach ( $ids as $id ) {
    $price = get_field( 'price', $id ); // 0 queries (all from cache)
}

Caché Transitoria para Operaciones Costosas

php
function get_featured_products_data() {
    $cache_key = 'featured_products_data';
    $data = get_transient( $cache_key );

    if ( false === $data ) {
        $query = new WP_Query( [
            'post_type'      => 'product',
            'posts_per_page' => 6,
            'meta_key'       => '_is_featured',
            'meta_value'     => '1',
        ] );

        fieldforge_preload( wp_list_pluck( $query->posts, 'ID' ) );

        $data = [];
        while ( $query->have_posts() ) : $query->the_post();
            $data[] = [
                'title' => get_the_title(),
                'price' => get_field( 'price' ),
                'image' => get_field( 'thumbnail' ),
                'url'   => get_permalink(),
            ];
        endwhile;
        wp_reset_postdata();

        set_transient( $cache_key, $data, HOUR_IN_SECONDS );
    }

    return $data;
}

// Invalidate when product fields change
add_action( 'fieldforge/value_updated', function( $post_id ) {
    if ( get_post_type( $post_id ) === 'product' ) {
        delete_transient( 'featured_products_data' );
    }
}, 10, 1 );

Asistente de IA de Forge En línea

¡Hola! Soy el asistente de IA de Field Forge. Pregúntame lo que quieras sobre el plugin — configuración, funciones, resolución de problemas o desarrollo.

Ahora mismo
Con la tecnología de Forge AI · Explorar documentación