Столкнулся с небольшой, но достаточно неприятной проблемой.
Занимался изучением настройки сверстанного HTML-шаблона под WordPress. То есть, другими словами - создания темы WordPress из готового HTML-шаблона.
Для этой задачи у меня на Linux Mint 17 Cinnanom 64-bit установлен локальный сервер XAMPP. Если кто не знает, как сервер XAMPP устанавливается под Linux, то могут почитать в этой статье - “Установка XAMPP под Linux Mint 17”. Под локальным сервером у меня “крутятся” виртуальные хосты на основе движка WordPress.
Предпросмотр темы не отображается в WordPress
После создания директории под новую тему - Choose
закинул к нее скриншот готовой темы для preview в менедежере тем WordPress - wp-admin/themes.php
. Но вот неожиданность - картинка-скриншот будущей темы Choose не отобразилась!
Перепробовал достаточно способов, в том числе и с официального сайта XAMPP - XAMPP работает, но почему картинки не отображаются?. То, что там описано - изменение двух строк файла /opt/lampp/etc/httpd.conf
:
#EnableMMAP off
#EnableSendfile off
… не сработало, так как в моем конфигурационном файле httpd.conf
обе строчки были расскоментированы по умолчанию:
EnableMMAP off
EnableSendfile off
Решение оказалось на удивление простым. Я и не подозревал, что
настройка прав доступа в Linux может быть такой “коварной” штукой!
Сначала обратил внимание на тот факт, что preview тем WordPress, которые
идут “в комплекте” с ним - “Twenty Fourteen”, “Twenty Thirteen”,
“Twenty Twelve” нормально отображаются на странице. А вот preview
моей темы - не отображается:
Решил проверить догадку методом “научного тыка” - тупо сравнить два файла-preview screenshot.png
из разных тем, своей “Choose” и стандартной “Twenty Fourteen”:
$ ls -l choose/wp-content/themes/twentyfourteen/screenshot.png
-rw-r--r-- 1 choose/wp-content/themes/twentyfourteen/screenshot.png
$ ls -l choose/wp-content/themes/choose/screenshot.png
-rw------- 1 choose/wp-content/themes/choose/screenshot.png
Вот оно! У файла screenshot.png
из темы “Twenty Fourteen” имеются права на чтение r
для - владельца, группы и всех остальных -rw-r-r-
. У файла screenshot.png
из моей темы “Choose” имеются права на просмотр r
только для владельца данного файла -rw- - -
.
Ну что-же, нужно добавить +
права чтения r
для всех a
пользователей файла screenshot.png
темы “Choose”:
$ sudo chmod a+r /opt/lampp/htdocs/choose/wp-content/themes/choose/screenshot.png
… и проверить результат:
$ ls -l /opt/lampp/htdocs/choose/wp-content/themes/choose/screenshot.png
-rw-r--r-- 1 /opt/lampp/htdocs/choose/wp-content/themes/choose/screenshot.png
Перехожу в WordPress на страницу управления темами wp-admin/themes.php
и смотрю, что получилось:
Картинка по центру изображения - это preview создаваемой темы “Choose” под WordPress. Как видно, все прошло удачно.
Картинки темы WordPress не отображаются под XAMPP
Но вышеназванное решение оказалось лишь половиной дела. Вторая проблема заключалась в том, что при активации вновь созданной темы под WordPress изображения из нее не отображаются на странице.
Фоновые изображения, картинки в HTML-файле - ничего не появляется на странице. Firebug не смог мне помочь - единственное, что он “подсказал” - “Файл невозможно загрузить”. Многословно, ничего не скажешь!
Помог незаменимый ресурс для front-end разработчика - Stack Overflow. Решение проблемы заключено в двух строках:
$ cd /opt/lampp/htdocs
$ sudo chmod 777 -R .
То есть, переходим в директорию htdocs
и меняем рекурсивно -R
права на все действия 777
для всего содержимого текущей .
директории. Не знаю, как там с вопросами безопасности в этом случае, но
факт остается фактом - все стало работать, как и надо было:
В принципе, на этом все.
Комментарии