J'aimerais que ma bannière d'en-tête change tous les jours et soit choisie (par exemple, au hasard) dans une liste/un dossier d'images.
Jusqu'à présent, je n'ai trouvé que des plugins qui sélectionnent une bannière aléatoire par publication ou par page, ce que je ne veux pas non plus. Connaissez-vous un plugin ou tout autre moyen?
Edit: Exemple. J'ajoute un dossier à mon installation wordpress. Ce dossier contient des images d'en-tête. Toutes les 24 heures, une image aléatoire est choisie dans ce dossier et devient l'image d'en-tête pendant 24 heures, jusqu'à ce qu'une autre image aléatoire soit choisie.
En fait, je ne me soucie pas de savoir exactement quelle image est choisie - je peux également faire pivoter toutes les images du dossier. La seule chose qui m'importe, c'est que l'image choisie y reste 24 heures.
En gros, c'est la même chose que si je choisissais chaque jour une nouvelle image d'en-tête.
<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>
remplacez votre en-tête actuel par ceci. Je vais bien sûr vous aider à mettre cela en œuvre si vous avez besoin d'aide. (ou si vous avez besoin du code expliqué)
Si vous ne pouvez pas coder, désolé non.
Si vous pouvez coder, regardez le hook utilisé par ces plugins et créez un nouveau plugin en conséquence.
Voir http://www.alistapart.com/articles/betterrotator/ Je l'utilise moi-même sur quelques sites.
Sur la base de la réponse de Cronco et de nombreuses expériences (je ne connais pas PHP ni du fonctionnement interne de wordpress lui-même) et d'un nettoyage, j'ai trouvé une solution qui répond parfaitement à mes besoins.
En utilisant le thème TwentyTen, j'ai édité son header.php comme ceci:
<?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; ?>
Si aucune image spécifique n'est définie pour la page affichée (ceci est spécifique à ce thème), une image d'en-tête est choisie en fonction du jour actuel parmi toutes les images jpg du dossier theme_directory/banners
, qui doit être créé.
J'ai essayé de mieux randomiser l'ordre des images, mais apparemment, ce n'est pas possible facilement, alors je suis parti avec un ordre fixe.
Vous pouvez consulter cet exemple Javascript , il est très facile de le mettre en œuvre dans votre thème.