Skip to content

Instantly share code, notes, and snippets.

@nilovelez
Last active October 29, 2016 17:05
Show Gist options
  • Save nilovelez/271a2540a39a3f5c08e3e53b76a4ff20 to your computer and use it in GitHub Desktop.
Save nilovelez/271a2540a39a3f5c08e3e53b76a4ff20 to your computer and use it in GitHub Desktop.
<?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