¿Cómo cambiar la opción editada recientemente?

4
La opción

WP recent_edited puede ser muy útil: rastrea los últimos 5 archivos a los que ha realizado cambios. El único problema es ... bueno, eso es todo, 5 archivos.

¿Qué sucede si he realizado numerosos cambios en los archivos de temas de Wordpress utilizando el editor de administrador de WP predeterminado?

Sería útil si tuviera una lista de, por ejemplo, los últimos 20 archivos editados y el momento en que ocurrió.

¿Alguien sabe dónde está la función almacenada o algún otro mecanismo que permita que solo 5 elementos residan en la matriz de la opción WP editada recientemente?

Lo he intentado con wp-admin / includes / schema.php y wp-includes / option.php donde, como he dicho, debería estar, sin resultados.

    
pregunta Miloš Đakonović 12.09.2012 - 09:07

2 respuestas

1

La función es update_recently_edited en wp-admin/includes/misc.php . desafortunadamente se fija en 5:

function update_recently_edited( $file ) {
    $oldfiles = (array) get_option( 'recently_edited' );
    if ( $oldfiles ) {
        $oldfiles = array_reverse( $oldfiles );
        $oldfiles[] = $file;
        $oldfiles = array_reverse( $oldfiles );
        $oldfiles = array_unique( $oldfiles );
        if ( 5 < count( $oldfiles ))
            array_pop( $oldfiles );
    } else {
        $oldfiles[] = $file;
    }
    update_option( 'recently_edited', $oldfiles );
}
    
respondido por el Milo 12.09.2012 - 09:23
5

El proceso de guardar opciones ofrece un filtro para un nuevo valor, con acceso al valor antiguo también. Solo necesitamos combinar ambos y dárselos a WP como valor para guardar:

add_filter( 'pre_update_option_recently_edited', 'increase_recently_edited_list', 10, 2 );

function increase_recently_edited_list( $newvalue, $oldvalue ) {

    return array_slice( array_unique( array_merge( $newvalue, $oldvalue ) ), 0, 20 );
}

PS, curiosamente, no puedo averiguar dónde se usa realmente esta lista ... ¿O solo está ahí para aquellos que quieren tener algo que ver con las extensiones?

    
respondido por el Rarst 22.12.2012 - 19:09

Lea otras preguntas en las etiquetas