web-dev-qa-db-fra.com

Comment changer d'option recent_edited?

L’option WP recent_edited peut s’avérer très utile: elle répertorie les 5 derniers fichiers auxquels vous avez apporté des modifications. Le seul problème est - bon, c'est tout, 5 fichiers.

Que se passe-t-il si de nombreux changements ont été apportés aux fichiers de thème Wordpress en utilisant l'éditeur par défaut WP admin?

Ce serait utile si j'avais la liste de, disons les 20 derniers fichiers édités et l'heure à laquelle cela s'est produit.

Est-ce que quelqu'un sait où est stockée la fonction ou un autre mécanisme qui n'autorise que 5 éléments à résider dans le tableau de l'option récemment_édité WP?

J'ai essayé avec wp-admin/includes/schema.php et wp-includes/option.php où il devrait, comme je le devais, être - aucun résultat.

4
Miloš Đakonović

La fonction est update_recently_edited dans wp-admin/includes/misc.php. malheureusement il est fixé à 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 );
}
1
Milo

Le processus d’option d’enregistrement permet de filtrer la nouvelle valeur avec l’accès à l’ancienne. Nous devons seulement combiner les deux et le donner à WP comme valeur à enregistrer:

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 curieusement, je ne peux pas savoir où cette liste est réellement utilisée? .. Ou est-ce seulement là pour ceux qui veulent quelque chose à voir avec elle dans les extensions?

5
Rarst