it-swarm-eu.dev

Jak otočit obrázek záhlaví za den?

Chtěl bych, aby se můj banner hlavičky změnil každý den, zvolený (např. Náhodně) ze seznamu/složky obrázků.

Zatím jsem jen našel pluginy, které vyberou náhodný banner za příspěvek nebo zobrazení stránky, ani to, co chci. Znáte zásuvný modul nebo jiný způsob?

Upravit: Příklad. Přidávám složku do instalace wordpressu. Tato složka obsahuje některé obrázky záhlaví. Každých 24 hodin se z této složky vybere náhodný obrázek a stane se obrazem záhlaví po dobu 24 hodin, dokud nebude vybrán jiný náhodný obrázek.

Vlastně, je mi jedno, jak přesně je obraz vybrán - jsem v pořádku s rotací přes všechny obrázky ve složce stejně. Jediné, na čem mi záleží, je, aby vybraný obraz zůstal po dobu 24 hodin.

V podstatě je to stejné, jako kdybych každý den ručně stahoval nový obrázek záhlaví.

1
mafu
 <div id="header">
    <?php
        mt_srand((int)date('z'));
        $headers=glob(PATH_TO_FILES .'/*.jpg');

        $header=mt_Rand(0,count($headers)-1  );
        ?>
            <img id="header-image"  `src="<?php echo URL_TO_FILES . '/'.basename($headers[$header]);  ?>" alt="header" />




 </div>

nahradit aktuální záhlaví tímto. Pokud budete potřebovat pomoc, budu vám to samozřejmě pomáhat. (nebo pokud potřebujete kód vysvětlit)

1
Cronco

Pokud nemůžete kód, promiňte ne.

Pokud můžete kódovat, podívejte se, který háček tyto pluginy používají, a podle toho vytvořte nový plugin.

1
Denis de Bernardy

Viz http://www.alistapart.com/articles/betterrotator/ Používám ho na několika stránkách.

1
markratledge

Na základě Croncovy odpovědi a spousty experimentování (nejsem obeznámen s PHP ani s vnitřním fungováním wordpressu sám) a nějakým očištěním jsem našel řešení, které dokonale splňuje mé potřeby.

Pomocí motivu TwentyTen jsem upravil jeho hlavičku header.php takto:

<?php
    // Check if this is a post or page, if it has a thumbnail, and if it's a big one
    if ( is_singular() &&
            has_post_thumbnail( $post->ID ) &&
            ( /* $src, $width, $height */ $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'post-thumbnail' ) ) &&
            $image[1] >= HEADER_IMAGE_WIDTH ) :
        // Houston, we have a new header image!
        echo get_the_post_thumbnail( $post->ID, 'post-thumbnail' );
    else : ?>

        <!-- patch mafu begin -->
        <?php
        $headers = glob( get_template_directory() . '/banners/*.jpg' );
        $header = (int)date('z') % count($headers);
        ?>
        <img src="<?php echo get_template_directory_uri() . '/banners/' . basename($headers[$header]); ?>" width="<?php echo HEADER_IMAGE_WIDTH; ?>" height="<?php echo HEADER_IMAGE_HEIGHT; ?>" alt="" />
        <!-- patch mafu end -->

    <?php endif; ?>

Není-li pro zobrazenou stránku nastaven žádný konkrétní obrázek (toto je specifické pro toto téma), pak je obrázek záhlaví vybrán na základě aktuálního dne ze všech obrázků jpg ve složce theme_directory/banners, která má být vytvořena.

Snažil jsem se náhodně uspořádat pořadí obrázků, ale zřejmě to není možné snadným způsobem, takže jsem šel s pevnou objednávkou.

0
mafu

Můžete se podívat na tento příklad Javascriptu, je velmi snadné jej implementovat do vašeho tématu.

0
Philip