it-swarm.dev

Mohu aktualizovat miniatury programově?

Chtěl bych být schopen programově aktualizovat mezipaměť miniatur, nevíte, kam se má připojit, ale v současné době žádné změny návrhu znamenají opětovné nahrání obrázků!

5
Mild Fuzz

Možná se budete chtít podívat na plugin Obnovit miniatury od Viper007Bond .

V podstatě je to, jak to udělat:

function regenerateThumbnails() {

    $images = $wpdb->get_results( "SELECT ID FROM $wpdb->posts WHERE post_type = 'attachment' AND post_mime_type LIKE 'image/%'" );

    foreach ( $images as $image ) {
        $id = $image->ID;
        $fullsizepath = get_attached_file( $id );

        if ( false === $fullsizepath || !file_exists($fullsizepath) )
            return;

        if ( wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $fullsizepath ) ) )
            return true;
        else
            return false;
    }
}

Poznámka: Tato funkce není příliš škálovatelná. To bude smyčka přes všechny obrazy a regenerovat miniatury jeden po druhém, který může spotřebovat velké množství paměti. Takže to možná budete chtít vylepšit.

8
sorich87