Como alterar a opção recent_edited?

4

A opção WP Recently_edited pode ser muito útil - ele rastreia os últimos 5 arquivos para os quais você fez alterações. O único problema é - bem, isso é tudo, 5 arquivos.

E se eu tiver feito inúmeras alterações nos arquivos de tema do Wordpress usando o editor de administração padrão do WP?

Seria útil se eu tivesse uma lista, digamos, dos últimos 20 arquivos editados e a hora em que isso aconteceu.

Alguém sabe onde está a função armazenada ou algum outro mecanismo que permita que apenas 5 itens residam no array da opção WP do recent_edited?

Eu tentei com o wp-admin / includes / schema.php e o wp-includes / option.php onde, como eu penso, deveria ser - sem resultados.

    
por Miloš Đakonović 12.09.2012 / 09:07

2 respostas

1

A função é update_recently_edited em wp-admin/includes/misc.php . infelizmente é fixado em 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 );
}
    
por Milo 12.09.2012 / 09:23
5

O processo de salvar opção convenientemente oferece filtro para novo valor, com acesso ao valor antigo também. Nós só precisamos combinar ambos e dar a WP como valor para salvar:

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 eu não consigo descobrir onde esta lista é realmente usada? Ou ela está lá apenas para aqueles que querem algo relacionado com extensões?

    
por Rarst 22.12.2012 / 19:09