Может ли WordPress работать без темы?

5 сент. 2014 г., 12:05:10
Просмотры: 28.8K
Голосов: 18

WordPress не может работать полностью без темы. Если активная тема отсутствует, WordPress автоматически использует встроенные механизмы для отображения базового контента:

Когда тема не установлена или не активирована, WordPress использует следующие механизмы:

1. Использует базовые функции ядра для вывода контента 2. Применяет минимальные стили по умолчанию 3. Задействует базовый шаблон отображения через классы WP_Query и WP_Post 4. Использует стандартные хуки WordPress для формирования структуры страницы 5. Отображает контент в простейшем формате HTML без дополнительного оформления

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

4
Комментарии

Я думаю, должна отображаться пустая страница, если в папке темы нет темы.

Robert hue Robert hue
5 сент. 2014 г. 12:07:42

Насколько я понимаю, для работы WordPress вам нужна тема. Что вы пытаетесь достичь, то есть почему вы задаете этот вопрос?

stemie stemie
5 сент. 2014 г. 12:24:14

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

Robert hue Robert hue
5 сент. 2014 г. 13:03:48

Сделайте то же, что и я: используйте концепцию, описанную здесь, а затем создайте свою собственную.

eyoung100 eyoung100
5 сент. 2014 г. 22:10:08
Все ответы на вопрос 2
8
29

Кажется, для этого есть песня:

"Представь, что нет темы. Это просто, если попробовать. Никакого ада под нами. Над нами только небо..." ;-)

Итак, в этом воображаемом мире:

  • вы по-прежнему можете получать RSS-ленты с вашего сайта:

    example.com/feed/
    
  • вы по-прежнему можете входить в админку:

    example.com/wp-login.php
    
  • вы по-прежнему можете заходить в админку и работать там (почти) как обычно:

    example.com/wp-admin/
    
  • отложенная публикация записей не будет работать, и вы увидите сообщение Missed schedule.

  • wp-cron не будет надежно работать.

  • вы по-прежнему можете обращаться к /wp-admin/admin-ajax.php

  • вы можете использовать хуки template_redirect и tempate_include для управления выводом. Попробуйте, например, этот небольшой плагин:

    <?php
    /** Название плагина: День-без-темы **/
    add_action( 'template_redirect', 
        function()
        { 
            wp_die( __( "Ура! Сегодня День без темы!" ) ); 
        } 
    );
    
  • ...

P.S.: Простите за мой пятничный ответ — "Но я не один такой" ;-)

5 сент. 2014 г. 12:55:11
Комментарии

Это действительно идеальный ответ.

Robert hue Robert hue
5 сент. 2014 г. 12:58:15

Отличная песня и даже более прекрасная реализация. Джон Леннон гордился бы. +1

Pieter Goosen Pieter Goosen
5 сент. 2014 г. 13:04:05

Определенно голос за цитату из Imagine :) жаль, что нельзя дать еще один за ответ.

Nicolai Grossherr Nicolai Grossherr
5 сент. 2014 г. 13:04:33

Полностью согласен с @ialocin. К сожалению, могу поставить только один голос за ответ.

Pieter Goosen Pieter Goosen
5 сент. 2014 г. 13:09:46

Сегодня играем в "пятницу наоборот" :-)

Pieter Goosen Pieter Goosen
13 февр. 2015 г. 14:48:19

Только что наткнулся на отсутствие exit в хуке template redirect, пятничное совпадение ;-) @PieterGoosen

birgire birgire
13 февр. 2015 г. 17:00:45

Хахаха, просто подкалываю, видел правку. Но все равно неплохой конец недели. Джон Леннон всегда в почете :-)

Pieter Goosen Pieter Goosen
13 февр. 2015 г. 17:07:12

Пятницы прекрасны ;-)

birgire birgire
13 февр. 2015 г. 17:22:50
Показать остальные 3 комментариев
0
13

Поскольку использование WordPress без темы встречается довольно редко, технические аспекты этого не получают много внимания.

Сначала необходимо понять, что в ядре WordPress существует несколько "конечных точек" (endpoints), обрабатывающих запросы.

  • Административная часть имеет свои (и многочисленные) конечные точки, такие как wp-admin/index.php.
  • Фронтенд почти всегда обрабатывается через index.php в корневой директории, но обычно это "скрыто" красивыми постоянными ссылками

Если вы посмотрите на последний файл, в нем есть следующая строка:

define('WP_USE_THEMES', true);

Таким образом, обычно WordPress ожидает, что фронтенд всегда будет иметь тему, и настраивает среду выполнения соответствующим образом. Эта константа управляет не так много, только тем, будут ли загружаться шаблоны темы в template-loader.php.

Обратите внимание, что это не предотвращает загрузку родительских/дочерних тем (если они присутствуют) во время процесса загрузки ядра.

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

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

5 сент. 2014 г. 16:58:43