Last active
October 29, 2016 17:05
-
-
Save nilovelez/271a2540a39a3f5c08e3e53b76a4ff20 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// en un tema o un plugin, no cargues siempre todos los ficheros | |
// incluye los ficheros sólo donde hacen falta | |
if ( is_admin() ) { | |
require_once('codigo_para_admin.php'); | |
}else{ | |
require_once('codigo_para_frontend.php'); | |
} | |
// las opciones se guardan por defecto con autoload | |
// no todas las opciones necesitan autoload | |
// esto se va a leer de base de datos siempre en cada carga de página | |
update_option('mi_opcion',$mis_datos); | |
// esto sólo se leer cuando se usa explicitamente get_option('mi_opcion') | |
update_option('mi_opcion',$mis_datos,'no'); | |
// si hay un cojunto de opciones que siempre se leer juntas, guárdalas juntas | |
// esto se guarda en cuatro registros independientes | |
// cada vez que se carga, son cuatro lecturas extra a base de datos | |
update_option('mi_opcion_a',$mis_datos_a); | |
update_option('mi_opcion_b',$mis_datos_d); | |
update_option('mi_opcion_c',$mis_datos_c); | |
update_option('mi_opcion_d',$mis_datos_d); | |
// esto se guarda como un solo campo serializado | |
// se carga con una sola llamada a base de datos | |
update_option('mi_opcion', array( | |
'a' => $mis_datos_a, | |
'b' => $mis_datos_b, | |
'c' => $mis_datos_c, | |
'd' => $mis_datos_d, | |
) | |
); | |
// la mejor caché es la que tu escribes | |
// pregenera todo el contenido persistente que puedas | |
// en vez de leerlo todo desde base de datos | |
echo generar_contenido_desde_bdd(); | |
// escríbelo a disco y léelo con readfile (pass-through) | |
$mifragmento = WP_CONTENT_DIR.'/cache/fragmento_pregenerado.html'; | |
if ( file_exists( $mifragmento ) ){ | |
readfile( $mifragmento ); | |
} else { | |
$contenido = generar_contenido_desde_bdd(); | |
@file_put_contents($mifragmento, $contenido, LOCK_EX); | |
echo $contenido; | |
} | |
// ¡usar con cuidado, es sólo un ejemplo! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment