web-dev-qa-db-ja.com

Recent_editedオプションを変更するには?

WP recent_editedオプションはとても便利です - それはあなたが変更を加えた最後の5つのファイルを追跡します。唯一の問題は - まあ、それがすべて、5つのファイルです。

デフォルトのWP管理エディタを使用してWordpressテーマファイルに多数の変更を加えた場合はどうなりますか?

私がリストを持っていたら、それは役に立つでしょう、編集された最後の20のファイルとそれが起こった時を言います。

5つの項目だけがrecent_edited WPオプションの配列に格納されることを可能にするストアドファンクションまたはその他のメカニズムがどこにあるかを誰かが知っていますか?

私はwp-admin/includes/schema.phpとwp-includes/option.phpを試してみましたが、ここでは、当然のことですが、結果は得られません。

4

関数はupdate_recently_edited内のwp-admin/includes/misc.phpです。残念ながら、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

オプションを保存するプロセスは便利に古い値へのアクセスで、新しい値のためのフィルターを提供します。両方を組み合わせて、保存する値としてWPに渡すだけです。

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不思議なことに、このリストが実際にどこで使用されているのかわかりませんか。

5
Rarst