Шаблони WordPress для початківців: як це
Коли я вперше почав думати про створення шаблонів у WordPress, я думав про два аспекти:
- вміст спеціально для учасників ,
- контент, який можна розділити на одну публікацію.
Але чим більше я думав про це, тим більше я розумів, що це можна (і, мабуть, потрібно) пояснити протягом кількох дописів.
Тож я збираюся розібрати поточний стан шаблонів WordPress, а потім практичні способи організації, скажімо, наших плагінів, щоб ми використовували стандартний PHP.
Після цього в наступній серії я розгляну, що означає використовувати інші механізми створення шаблонів (як PHP, так і JavaScript у нашій роботі).
Але для початку я хочу поглянути, як ми часто бачимо шаблони, написані в контексті як тем WordPress, так і плагінів.
Шаблони WordPress для початківців
Залежно від вашого досвіду роботи з WordPress та іншими системами на основі PHP, ваше визначення шаблонів може відрізнятися від визначення когось іншого.
Тому, щоб спробувати створити загальне визначення, яке я буду використовувати в цій серії публікацій, використовуватимуться з Кодексу WordPress:
Шаблони — це файли, які керують тим, як ваш сайт WordPress відображатиметься в Інтернеті.
Далі на сторінці розповідається про те, як це працює в поєднанні з базою даних та іншими ресурсами, і я рекомендую прочитати про це, якщо ви з цим не знайомі.
Однак наведене вище визначення добре підходить для того, як я планую рухатися вперед, думаючи про це.
1 Як це (прямо зараз)
Коли мова заходить про шаблони WordPress, я вважаю, що корисно розглянути один шаблон із кодом, який виглядає приблизно так:
<div id="content-container">
<p>
Oh! The garbage chute was a really wonderful idea. What an incredible smell you've discovered! Let's get out of here!
Get away from there... No! wait! Will you forget it? I already tried it. It's magnetically sealed! Put that
thing away! You're going to get us all killed.
</p>
<h2>List of Post Titles For Acme Post Type</h2>
<?php
$args = array(
'post_status' => 'publish',
'post_type' => 'acme',
'posts_per_page' => '10'
);
$custom_query = new WP_Query( $args );
if ($custom_query->have_posts()) {
echo '<ul>';
while ($custom_query->have_posts()) {
$custom_query->the_post();
echo '<li>'. get_the_title(). '</li>';
}
echo '</ul>';
wp_reset_postdata();
}
?>
<p>
Absolutely, Your Worship. Look, I had everything under control until you led us down here. You know, it's not
going to take them long to figure out what happened to us. It could be worst... It's worst.
There's something alive in here! That's your imagination. Something just moves past my leg!
Look! Did you see that? What? Help!
</p>
</div><!-- #content-container -->
Суть коду вище полягає в тому, що ви бачите, що він поєднує PHP і HTML.
Крім того, важливо зазначити, що кожен із цих файлів оформлено за допомогою CSS і може мати додаткову поведінку, керовану за допомогою JavaScript. З цією метою ви можете концептуалізувати це так:
Це являє собою єдиний шаблон, який змішує HTML і PHP в одному шаблоні. Цей шаблон потім стилізується за допомогою CSS і контролюється за допомогою JavaScript.
Усе це працює разом, щоб забезпечити те, що бачить користувач.
2 Чи створює організація розробника продуктивність?
Але те, як це працює, є дещо безладним, і хоча це може виглядати добре для користувача, це викликає деякі запитання:
- Чи настільки він ефективний, наскільки міг би бути?
- Наскільки легко розробнику підтримувати?
- Який процес створення?
- як утримуються та організовуються активи?
Звичайно, більшість із того, що ви читаєте вище, орієнтоване на розробника, але я вважаю, що коли код організовано таким чином, що розробникам легко з ним працювати, це часто може бути легким, навіть швидшим для користувача.
Що це означає?
- Представляємо Sass?
- Чи зменшуємо JavaScript?
- Як об’єднати ці активи та імпортувати їх?
- Як щодо спеціальних запитів PHP, які відбуваються в контексті кожного шаблону?
І хоча перші речі важливі й варті того (і я можу розглянути їх у серії після цього), відокремлення логіки від шаблону навіть без механізму створення шаблонів може допомогти зробити код більш орієнтованим на розробника.
Чи робить це роботу користувача швидше? Не обов’язково. Але це допомагає нам зробити перший крок у цьому.
Давайте знову організуємося
У наступному дописі цієї серії я розберу на прикладі вміст, який ми звикли бачити в шаблонах WordPress, і почну його реорганізовувати, щоб краще організувати, щоб методики можна було використовувати в різних проектах.
Це означає переміщення речей у їхні функції (або навіть у їхні класи і, отже, їхні функції) і те, як ми можемо викликати їх із контексту наших шаблонів.
Зрештою, це призведе до створення коду, який легше читати, кращого розподілу проблем і підштовхне нас до способів зміни того, як дані вводяться в шаблон.