Случайная картинка через CSS

Мой любимый сайт про Прагу работает на wordpress. Нашел я для него красивую темку и долго долго пилил ее. И тут мне захотелось, чтоб фоновая картинка сайта рандомно менялась при переходе внутри сайта, или при обновлении странички. В php я полный -1, но опытным путем было выяснено, что фоновая картинка выводится описанием стиля тега BODY в файле CSS

Конкретно в файле style.css вот этот код

body {
background: #ffffff url(images/bg.jpg) no-repeat center top;
}

Я наделал несколько картинок нужного размера с названиями bg1.jpg, bg2.jpg, bg3.jpg, bg4.jpg… и закинул их в папку с картинками темы. Думал, что я вставлю php код который рандомно генерирует цифры в ссылке к файлу фона сайта. Вот только у меня ничего не получилось. Код php в файле css упорно не хотел обрабатываться. Полтора часа гугления, и где то на просторах буржуйского интернета, я нашел как это осуществить. В папке с темой создаем файл .htaccess, и в него вставляем строчку

AddType application/x-httpd-php .css

Теперь код php работает. Вот только все стили темы послетали. Через еще часик упорного чтения со словарем буржуйских форумов, было выяснено, что файлы css не обрабатываются браузером, так как в их заголовке не обозначено, что это именно файл стиля. Значит во все файлы CSS в начало файла надо вставить

<?php header('Content-type: text/css'); ?>

теперь в фале стиля у меня код

body {
background: #ffffff url(images/bg<?php echo rand(1,6); ?>.jpg) no-repeat center top;
}

То есть рандомно генерится цифра от 1 до 6 и подставляется в ссылку к файлу с картинкой. Зачем там ECHO?. Потому что код php надо не только обработать но еще и подставить в строку результат.

К сожалению, после прочтения кучи страниц на нерусском языке, я не могу привести источники где нашел это решение, я тупо не могу найти опять эти странички, а в закладки добавить не догадался((

Запись опубликована в рубрике Сделал Сам с метками , . Добавьте в закладки постоянную ссылку.

15 комментариев: Случайная картинка через CSS

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *