Mejor metodo para eliminar multiple options y transients
-
Buenas,
Estoy trabajando en un plugin y me ha surgido una duda.Pongamos que se crean en varias classes una option dinamicamente y posibles transient no caducables o que por algun motivo no se eliminaron y todo tiene el mismo prefijo.
Lo suyo seria saber el nombre y añadirlo al metodo de eliminacion, esta claro.
Pero y sino fuese el caso.Habia pensado en dos formas, ojo no estan probadas
Primera option:
1.- Busco todos los valores
2.- LLamo a la function correspondiente, para asi tambien llamar aWP_Object_Cache
para eliminar el cache.global $wpdb; $like = '%' . $wpdb->esc_like( 'my_option_prefix' ) . '%'; /** Option name prefix */ $nolike = '%' . $wpdb->esc_like( 'timeout' ) . '%'; /** Exclude transient timeout*/ $names = $wpdb->get_col( $wpdb->prepare( "SELECT option_name FROM $wpdb->options WHERE option_name LIKE %s AND option_name NOT LIKE %s", $like, $nolike ) ); foreach ( $names as $name ) { $func = ( false === strpos( $name, 'transient' ) ) ? 'delete_option' : 'delete_transient'; call_user_func( $func, $name ); }
Segunda option:
1.- Elimino directamente todo de la db y nos olvidamos deWP_Object_Cache
global $wpdb; $like = '%' . $wpdb->esc_like( 'my_option_prefix' ) . '%'; $wpdb->query( $wpdb->prepare( "DELETED FROM $wpdb->options WHERE option_name LIKE %s", $like ) );
Que opinais? O se os ocurre otro metodo.
Viendo 7 respuestas - de la 1 a la 7 (de un total de 7)
Viendo 7 respuestas - de la 1 a la 7 (de un total de 7)
- El debate ‘Mejor metodo para eliminar multiple options y transients’ está cerrado a nuevas respuestas.