Как вы применяете несколько скинов к сайту с помощью селектора «шаблонов», используя переключение стилей?

Я просто мочу ноги шаблонами и задаю несколько вопросов.

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

В настоящее время способ изменения внешнего вида сайта заключается в переключении стилей.

У меня просто есть папка под моей основной темой под названием «стили», затем под ней у меня есть одна папка для каждой из моих «скинов». Внутри каждой папки скина есть стиль.css вместе с некоторыми изображениями.

То, как он работает, заключается в том, что я поместил некоторый код в файл header.php моей основной темы, чтобы он считывал значение текущего активного скина из базы данных параметров, а затем загружал таблицу стилей для этого скина, как …

В приведенном выше примере активная скина – «skin1», поэтому я всегда загружаю …

"… MyTheme / стили /". get_option ('active_skin'). "style.css"

Это работает очень хорошо, и позволяет мне размещать простой виджет переключателя скинов (раскрывающееся меню с миниатюрным изображением) внутри моего файла functions.php, чтобы позволить пользователю администратора легко переключаться между несколькими скинами, которые полностью меняют внешний вид сайта ,

Красота такого подхода заключается в том, что выбранная тема и базовая разметка остаются неизменными, поэтому я могу создать множество стилей с использованием предсказуемой разметки. Похоже на CSS zen garden. Такая же разметка, тысячи проектов. Все изменения – это таблица стилей и изображения.

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

Если бы был способ добавить некоторый код в каждую папку скина, чтобы он отображался в раскрывающемся меню «шаблоны» в редакторе страниц, я мог бы делать именно то, что хочу.

Это возможно?

Конечно, это возможно. Быстрый способ заключается в добавлении настраиваемого поля в postmeta (в области «Пользовательские поля» на странице «Редактировать сообщение / Редактировать страницу»), а в вашей теме получить значение с помощью get_post_meta () .

Немного-менее быстрый способ заключается в том, чтобы добавить обертку к этому настраиваемому полю, поставив селектор тем в мета-поле сообщения .

Я просто просматривал автозапуск шаблона страницы для другого вопроса, и, оказывается, WordPress явно запрещает файлы шаблонов в подкаталогах . Вам придется идти по этому пути другим способом, например, использовать настраиваемые поля в качестве предложения gabrielk или делать пользовательский интерфейс для тех же мета-полей, используя пользовательские мета-поля .