Структура WordPress шаблону її повинен знати кожен! Посторінковий висновок (PHP та MySQL)

Всім привіт! Сьогодні ми розглянемо структуру будь-якого шаблону WordPress сайту. З яких базових файлівта елементів вона будується. Ці знання додадуть вам впевненості у зміні та редагуванні чужих шаблонів. А згодом, за наявності базових знань HTML, CSS, і PHP, створювати свої власні теми. Але поки що ми так далеко не будемо заглядати, почнемо з азів.

Основні файли будь-якого шаблону. Їхнє призначення.

Так, будь-який шаблон за своєю суттю має складатися з 10 базових файлів. Тож давайте розбиратися в них.

Приклад структури WordPress шаблон

style.css- файл таблиці стилів шаблону. Цей файл повинен бути у будь-якої теми, оскільки саме він відповідає за її оголошення, а також може зберігати додаткову інформацію: ім'я автора шаблону, версію шаблону, домашню сторінкуавтора і т.д. Ну і, звичайно, пряме призначення — це все CSS стилі.

index.php- файл відповідає за відображення головної сторінки WordPressшаблон. При верстці свого макети завжди пам'ятайте, що Головна сторінкаможе бути як статичною, і динамічної.

single.php— файл, який відповідає за виведення кожного окремого посту вашої теми. Як приклад можна навести цю статтю, яку ви читаєте.

page.phpфайл відповідає за формування статичних сторінок. Зазвичай це сторінки: контакти, про автора, ресурс і т.д.

header.php- Формує шапку сайту, і зберігає в собі всі важливі метатеги для просування.

footer.php- Файл відповідає за відображення підвалу сайту.

sidebar.php- Формує відображення сайдбара або російською бічної колонки блогу або сайту.

functions.php- файл, що відповідає за додатковий функціоналшаблон. Наприклад: висновок останніх коментаторів на моєму блозі формується саме у цьому файлі.

comments.php— файл відповідає за відображення коментарів шаблону.

404.php- Відповідає за відображення сторінки з 404 помилкою.

search.php— файл, який відповідає за відображення сторінки пошуку.

Необов'язкові файли. Але про їхнє існування треба знати.

category.phpфайл відповідає за відображення анонсів у категоріях (якщо файлу немає, то формування здійснюється за рахунок файлу index.php)

tag.phpфайл відповідає за відображення анонсів на сторінці тегів (якщо файлу немає, то формування здійснюється за рахунок файлу index.php)

taxonomy.phpфайл відповідає за відображення анонсів на сторінках таксономії (якщо файлу немає, то формування здійснюється за рахунок файлу index.php)

author.phpфайл відповідає за відображення анонсів статей певного автора (якщо файлу немає, то формування здійснюється за рахунок файлу index.php)

attachment.php- Відповідає за виведення прикріпленого файлу.

searchform.php- Відповідає за формування форми пошуку.

Якщо у вашому шаблоні є файли з необов'язкового списку, то ви повинні знати, вони завжди мають пріоритет вище, ніж файл index.php. Це можна пояснити тим, що index.php це загальний випадок, а припустимо tag.php це вже приватний. Ті конкретніший, отже, його і треба сприймати.

А що зберігається у папках?

Папки зазвичай служать для сховища певного типуфайлів. Наприклад: папка (image, images, img і тд) зберігає у собі файли зображень, які стосуються цієї теми. Папка JS зберігає файли скриптів. Папка inc зберігає php файли, які інклюдяться (включаються) в існуючі файлитеми.

Такі папок може бути скільки завгодно, і називатися вони можуть по-різному. Суть їх у тому, щоб усунути бардак у шаблоні, і привести все до будь-якої ієрархії.

Screenshot.png - це що за звір?

Зазвичай цей файл містить скріншот шаблону, щоб у адмінці, коли ви вибирали тему для сайту чи блогу, могли бачити її як мініатюру. Розмір цього файлика має бути 880x660px.

Візуальне представлення структури шаблону

Схематичне зображення wordpressшаблону

Як бачите, структура, яка на малюнку відповідає структурі мого блогу. Незважаючи на те, що шаблони різних авторів виглядають по-різному, всі вони мають у своїй основі перераховані вище файли.

upd: Обережно, текст містить сатиру та кодобред

Мова програмування PHPбере свій початок у 1995 році і є продуктом епохи зародження сучасних вебстандартів, таких як http (версія 1.0 – 1996), html (версія 2.0 – 1995), javascript (1995 рік), url (1990 – 1994 роки). Спочатку абревіатура php мала розшифровку Personal Home Page Tools, далі трансформувавшись у Hypertext Preprocessor або препроцесор гіпертексту. Про використання PHPяк препроцесор і буде присвячено кілька наступних абзаців.

Інтерпретатор PHP дозволяє вставляти у будь-який текст спеціальні теги, за допомогою якого можна підставити на сторінку динамічний контент, що дуже зручно використовувати всередині html документів. Отриманий результат одразу подається на стандартний пристрійвисновку, відоме як stdout (детальніше дивись). Є можливість буферизувати висновок до затребуваності через функцію ob_start, але для нашої першої html сторінокти це не знадобиться. Останній стандарт html під номером 5 ввів кілька нових тегів для спрощення розмітки, підвищення читальності та семантичності Інтернету (що б це не означало). Тому відразу скористаємося всією потужністю HTML5 і напишемо шаблон сторінки зі вставками на препроцесорі, що розглядається.

Збережемо цю сторінку у файлі index.html. Функціонал блогу в першій його версії передбачатиме зберігання публікацій у вигляді htmlсторінок всередині заздалегідь заданої директорії (наприклад pages/) та меню, що дозволяє перейти відразу на потрібну публікацію.

Приклад публікації, яка буде виведена у стрічку блогу.

У корені проекту додамо директорію pages/ та збережемо нашу статтю під довільним ім'ям, наприклад, як 2018-trends.html.

Тепер нам потрібен веб-сервер для обробки вхідних http запитіввід користувачів, і сервер програми для бізнес логіки. Щоб не плодити зайві сутності напишемо невелику програму мовою програмування Go, яка виступатиме і в ролі веб-сервера, і міститиме код блогу. Для передачі запитів користувача з хостової програми в препроцесор скористаємося стандартним потокомвведення (stdin), для серіалізації даних скористаємося популярним форматом для серіалізації даних – json.

Скрипт для обробки вхідних даних:

Код блогу:

main.go

package main import ("encoding/json" "io/ioutil" "net/http" "os/exec" "strings" "github.com/labstack/echo") func main() ( e:= echo.New() e.GET("/", index) e.GET("/pages/:page", index) e.Start(":8000") ) func index( echo.Context) error (outData:= struct ( Menu string `json:"menu"` Pages string `json:"pages"` )() outData.Menu = make(string, 0) outData.Pages = make(string, 0) page:= c.Param("page" ) files, _ := ioutil.ReadDir("pages") for _, file:= range files ( if !file.IsDir() ( outData.Menu = append(outData.Menu, file.Name()) ) if page != "" && page == file.Name() ( fbody, _ := ioutil.ReadFile("pages" + "/" + file.Name()) outData.Pages = append(outData.Pages, string(fbody) )) ) else if page == "" ( fbody, _ := ioutil.ReadFile("pages" + "/" + file.Name()) outData.Pages = append(outData.Pages, string(fbody)) ) ) rendered:= renderContent(outData) return c.HTMLBlob(http.StatusOK, rendered) ) func renderContent(input interface()) byte ( jsonInput, _ := json.Marshal(input) tmplEngine:= exec.Command(" ", "-f", "index.php") tmplEngine.Stdin = strings.NewReader(string(jsonInput)) rendered, _ := tmplEngine.Output() return rendered )


Тепер запускаємо на виконання програму через go run і робимо запит на сторінку через будь-який браузер, наприклад:

Links2 http://localhost:8000

Результат подано на КДПВ.

Допитливий читач може помітити, що ми сильно втрачаємо у продуктивності запускаючи на кожен запит php процес. На даний момент легко оптимізувати використовуючи механізм

На уроках 1 і 2 ви трохи познайомилися з PHP і налаштували сервер (або отримали до нього доступ). Наразі ми готові до створення першої РНР-сторінки. Це буде легко і просто, але після цього уроку ви вже знатимете про РНР набагато більше.

Як правило PHP-файл є текстовим файлом з розширенням .php, Що складається з:

  • тексту
  • HTML-тегів
  • PHP-скриптів

Ви вже знайомі з текстом та HTML-тегами. Тепер зупинимося на РНР-скриптах.

PHP-скрипти

PHP Documentation Group випустила докладну документацію. По всьому цьому підручнику дається безліч посилань на цю документацію. Мета – щоб ви звикли шукати відповіді на ваші запитання. PHP настільки великий, що його неможливо охопити у цьому підручнику. Але PHP досить проста! Більш того, мова PHP часто дуже схожа на звичайну англійську.

Почнемо конструювання вашої першої РНР-сторінки.

Приклад: Hello World!

Почнемо створення звичайного HTML-документа, але назвемо файл page.phpі помістимо його до кореневої директорії сайту. Якщо ви використовуєте XAMPP (див. Урок 2), шлях до файлу на вашому комп'ютері (який є сервером) буде "c:\xampp\htdocs\page.php".

HTML-код має виглядати приблизно так:

Моя перша PHP-сторінка

Як ви пам'ятаєте, ймовірно, з першого уроку, PHP дає команди серверу. Тож давайте напишемо команду серверу.

Спочатку ми повинні вказати серверу, де код PHP починаєтьсяі закінчується. У PHP теги і ?> використовуються для позначення початку та кінця блоків РНР-коду, які сервер повинен виконувати (на більшості серверів достатньо використовувати як стартовий тег, але буде коректніше при першому використанні PHP.)

Спробуємо тепер додати такий блок коду до вашого HTML-коду:

Моя перша PHP-сторінка Hello World!"; ?>

Якщо переглянути цей PHP-документ у браузері, то він виглядатиме приблизно так:

Але цікаво буде переглянути HTML-код у браузері (вибравши "view source"):

PHP-коди зникли! З першого уроку, ви пам'ятаєте, що тільки сервер може бачити коди PHP - клієнт (програма-браузер) бачить лише результат!

Подивимося, що відбувається. Ми просимо сервер написати

Hello World!

. Говорячи більш технічною мовою, ми використовуємо рядкову функцію echo для написання клієнту спеціалізованого рядка, де крапка з комою позначають кінець команди. Але не хвилюйтесь! У цьому підручнику ми намагатимемося використовувати технічну термінологію по-мінімуму.

Наш перший приклад, очевидно, не особливо вражаючий. Але не поспішайте! Тепер буде все цікавіше. Розглянемо інший приклад.

Приклад: Now!

Змусимо сервер написати щось ще. Ми можемо, наприклад, попросити його вивести поточну дату та час:

Моя перша PHP-сторінка

У браузері ми побачимо:

Відповідний HTML-код:

Стало вже трохи цікавіше, чи не так?

Сервер відображає дату та час під час відображення РНР-сторінки. Зауважте, що при оновленні сторінки в браузері з'явиться новий час. Сервер виводить поточну дату та час щоразу при надсиланні сторінки клієнту.

Зазначимо також, що HTML містить тільки дату і час, але не РНР-коди. Отже, цей приклад залежить від того, який браузер використовується. Насправді вся функціональність виконується сервернимитехнологіями і завжди працює у всіх браузерах!

Створити файл намічений hello.php і виконати його в своєму веб-сервері з керуванням directory (DOCUMENT_ROOT) з наступним вмістом:

Example #1 Our first PHP script: hello.php



PHP Test


Hello World

" ; ?>



Use your browser to access the file with your web server"s URL, ending with the /hello.php file reference. When developing locally this URL will be something як http://localhost/hello.php or http://127.0.0.1/hello.phpале це залежить від веб-серверу з налаштуванням. Якщо все це configured correctly, цей файл буде перевірений PHP і following output will be sent to your browser:

PHP Test

Hello World



Цей program є надзвичайно простим і ви дійсно не потрібні для використання PHP для створення на сторінці як це. All it does is display: Hello World using the PHP echo statement. Note that the file does not need to be executable or special in any way. Server finds out that this file needs to be interpreted by PHP because you used the ".php" extension, який the server is configured to pass on to PHP. Примітно, що це як звичайний HTML файл, який має на увазі те, що має спеціальні tags, доступні для вас, щоб зробити безліч інтересів.

Якщо у вас є ця стаття і вона не потрібна, будь-яка, вона спрямована на додавання, або ви бачите весь файл як текст, зміни є те, що ваш сервер ви не можете PHP enabled, або не configured properly.

Щоб ваш адміністратор набрав це для вас, використовуючи Installation chapter of manual. Якщо ви розробляєте локально, також read the installation chapter to make sure everything is configured properly. Make sure that you access the file via http with the server providing you the output. Якщо ви шукаєте файл з вашого файлу системи, він не буде перевірений PHP. Якщо проблеми завжди існують будь-який час, не може бути використана одна з багатьох функцій. Піктограма прикладу полягає в показі спеціального PHP tag format. ?> In this example we used

натисніть start of a PHP tag. The we put the PHP statement and left PHP mode by adding the closing tag,: . Ви можете скакати в і в PHP режимі в HTML файлі як це будь-де ви. Для того, щоб переглянути більше деталей, виконати manual section on basic PHP syntax .

Note ?> A Note on Line Feeds ?> Line feeds мають короткий аналіз в HTML, тому що це є приємною ідеєю для того, щоб зробити ваш HTML приємним і чистим під час line feeds in. A linefeed that follows immediately after a closing

натисніть start of a PHP tag. The we put the PHP statement and left PHP mode by adding the closing tag,: A Note on Text Editors

Там є багато текстових editors і вдосконаленого розвитку навколишнього середовища (IDEs), що ви можете використовувати для створення, редагування і управління PHP файлами. Частковий лист цих інструментів є maintained на » PHP Editors List . Якщо ви збираєтеся до recommend editor, натисніть на сторінку і натисніть на page maintainer, щоб отримати в editor до списку. Маючи editor з syntax highlighting може бути helpful.

натисніть start of a PHP tag. The we put the PHP statement and left PHP mode by adding the closing tag,: A Note on Word Processors

Word processors так як StarOffice Writer, Microsoft Word і Abiword не є optimálnим для editing PHP files. Якщо ви збираєтеся використовувати один для цього тесту script, ви повинні скористатися тим, що ви використовуєте файл як plain text or PHP не може бути виконаний і виконує script.

натисніть start of a PHP tag. The we put the PHP statement and left PHP mode by adding the closing tag,: A Note on Windows Notepad

Якщо ви пишете ваші PHP scripts, використовуючи Windows Notepad, ви повинні використовувати ваше те, що ваші файли будуть збережені з .php extension.

(Помітник написує на .txt extension до файлів автоматично unless you take one of the following steps to prevent it.) Якщо ви напишете файл і буде налаштовано на наведений файл для файлу, place the filename in quotes (і.е. " hello.php "). Крім того, ви можете натиснути на "Text Documents", щоб потрапити в меню "Додаток" dialog box і змінити налаштування до "Всі файли". Ви можете вводити свій filename без quotes. Тепер, що ви успішно створили працюючий PHP script, це є час, щоб створити найбільш популярний PHP script! Make a call to the phpinfo()

функція і ви будете багато можливостей інформації про вашу систему і налаштувати такі як наявні визначені параметри , loaded PHP modules, і configuration settings. Таке деякий час і переглянути це важливе повідомлення.