Теми для WordPress є основою вигляду та функціоналу веб-сайту. Розробка власних тем дозволяє не лише створити дизайн, який ідеально відповідає вашим вимогам, а й глибше зрозуміти принципи роботи системи WordPress, а також покращити власні навички програмування. Цей посібник покаже вам, як з нуля створити базову тему, яка відповідає стандартам WordPress.
Створення середовища розробки та підготовка інфраструктури
Перш ніж почати писати код, вам знадобиться відповідне локальне середовище розробки. Для цього можна використовувати XAMPP, MAMP або додатки для настільних комп’ютерів, такі як Local by Flywheel. Обов’язково переконайтеся, що в середовищі встановлені PHP, MySQL, а також сервери Apache або Nginx.
Створення каталогу тем та основних файлів
Одна з найбазовіших тем для WordPress потребує лише двох файлів. По-перше, ці файли знаходяться у каталозі вашої установки WordPress.wp-content/themesУ цій папці створіть нову папку, наприклад, названу „New Folder“.my-first-theme。
Рекомендуємо до прочитання. Керівництво з розробки теми для WordPress: створення персоналізованого вебсайту з нуля.。
У цьому папці створіть перший основний файл:style.cssЦей файл є не лише таблицею стилів, а й містить метаінформацію про тему. У вступній частині файлу обов’язково має бути коментар у правильному форматі.
/*
Theme Name: My First Theme
Theme URI: https://example.com/my-first-theme
Author: Your Name
Author URI: https://example.com
Description: 这是一个用于学习的入门级WordPress主题。
Version: 1.0
License: GNU General Public License v2 or later
Text Domain: my-first-theme
*/ Другим ключовим файлом є…index.phpЦе файл зі стандартним шаблоном для теми; він використовується, коли WordPress не може знайти більш специфічний шаблон. Спочатку він може бути дуже простим у своєму вигляді.
<!DOCTYPE html>
<html no numeric noise key 1010>
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
<p><strong> <p><strong>
</head>
<body no numeric noise key 1007>
<header>
<h1><a href="/uk/</?php echo esc_url( home_url( '/' ) ); ?>"><?php bloginfo( 'name' ); ?></a></h1>
<p><?php bloginfo( 'description' ); ?></p>
</header>
<main>
<?php
if ( have_posts() ) :
while ( have_posts() ) :
the_post();
the_content();
endwhile;
endif;
?>
</main>
<footer>
<p>©</p>
</footer>
<p><strong>Цей текст повинен бути перекладений на українську мову.</strong></p>
</body>
</html> Зараз ваш тематичний дизайн можна переглянути у списку тем у панелі керування WordPress (“Вигляд” -> “Теми”), і він вже активований для використання.
Основні файли шаблонів і ієрархія шаблонів.
WordPress використовує систему правил під назвою “Ієрархія шаблонів” для визначення того, який шаблон має бути використаний для певної сторінки. Розуміння цієї ієрархії є ключовим для розробки тем.
Статті та шаблони сторінок
Коли відвідується окрема стаття, WordPress в першу чергу шукає потрібну інформацію у внутрішніх даних сайту.single.phpЯкщо такого елемента не існує, поверніться до попереднього стану.index.phpВи можете створити це.single.phpМожна налаштувати вигляд окремої сторінки статті за вашим бажанням.
Рекомендуємо до прочитання. Посібник з розробки тем для WordPress: створіть свою власну тему для веб-сайту з нуля。
<?php get_header(); ?>
<article id="post-<?php the_ID(); ?>" no numeric noise key 1007>
<header class="entry-header">
<h1 class="entry-title"><p><strong> <p><strong></h1>
<div class="entry-meta">
发布于: | 作者:
</div>
</header>
<div class="entry-content">
<p><strong> <p><strong>
</div>
<footer class="entry-footer">
<?php the_tags( '标签:', ', ', '<br />' ); ?>
</footer>
</article>
<p><strong>Якщо ви хочете перекласти цей текст на українську мову, будь ласка, зробіть це нижче.</strong></p> Для окремих сторінок WordPress шукає відповідні дані чи контент.page.phpВи також можете створювати шаблони для певних ідентифікаторів сторінок або псевдонімів сторінок. Наприклад:page-about.phpВоно буде використовуватися спеціально для сторінки “Про”.
Архівування та шаблони головної сторінки
Сторінка зі списком блог-публікацій (наприклад, за категоріями, тегами, архівом авторів) використовує…archive.phpВи можете використатиis_category()、is_tag()Умовні теги розрізняються між собою за їх внутрішніми параметрами (значеннями).
Домашня сторінка веб-сайту за замовчуванням складається з…index.phpКонтроль. Але ви можете створити це.front-page.phpДавайте визначимо статичну головну сторінку або створимо її.home.phpОсь як визначити домашню сторінку блогу, яка відображає найновіші статті:
Функції тем та механізм хуків (hooks)
Гнучкість та розширюваність WordPress значною мірою зумовлені системою хуків (Hooks), яка включає в себе дії (Actions) та фільтри (Filters). Теми (Themes) можуть ефективно використовувати ці механізми для налаштування поведінки сайту та додавання нових функцій.functions.phpФайли необхідні для використання цієї системи.
Ініціалізація теми та функціональна підтримка.
functions.phpЦі файли використовуються для додавання функцій тем, реєстраційних меню, бічних панелей тощо. Зазвичай для цього спочатку…after_setup_themeЦей функціональний хак (action hook) призначений для ініціалізації базових можливостей теми (theme).
<?php
function my_theme_setup() {
// 让WordPress管理文档标题
add_theme_support( 'title-tag' );
// 启用文章和页面的特色图像功能
add_theme_support( 'post-thumbnails' );
// 启用HTML5标记支持
add_theme_support( 'html5', array( 'search-form', 'comment-form', 'comment-list', 'gallery', 'caption' ) );
// 注册一个导航菜单
register_nav_menus( array(
'primary' => __( '主导航菜单', 'my-first-theme' ),
) );
}
add_action( 'after_setup_theme', 'my_theme_setup' ); Розділ для реєстрації додатків/пристроїв
Бічні панелі чи футери – це також області для розміщення додаткових інструментів (віджетів); їх також потрібно враховувати під час проектування сайту.functions.phpЗареєструйтеся на сайті. Використовуйтеwidgets_initХук.
Рекомендуємо до прочитання. Повний посібник з розробки тем для WordPress: від початківців до досвідчених фахівців。
function my_theme_widgets_init() {
register_sidebar( array(
'name' => __( '主侧边栏', 'my-first-theme' ),
'id' => 'sidebar-1',
'description' => __( '在此添加小工具。', 'my-first-theme' ),
'before_widget' => '<section id="%1$s" class="widget %2$s">',
'after_widget' => '</section>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
) );
}
add_action( 'widgets_init', 'my_theme_widgets_init' ); Після реєстрації ви зможете користуватися шаблонними файлами (наприклад…).sidebar.phpВикористовується у (…)dynamic_sidebar( 'sidebar-1' )Час використовувати цю функцію (або цей ресурс) у цьому регіоні.
Оптимізація шаблонних компонентів та циклів
Для підтримки чистоти та повторного використання коду WordPress рекомендує розділяти повторювані частини шаблонів (наприклад, верхній та нижній блоки, бічні панелі) на окремі файли.
Розділення компонентів шаблону
Створитиheader.php、footer.php和sidebar.phpФайл.index.phpПеремістіть відповідні фрагменти коду туди, де це потрібно. Потім використовуйте їх на своєму початковому місці.get_header()、get_footer()和get_sidebar()Функції використовуються для їх включення.
Посунуте оброблення циклів статей
Основи використання циклівwhile ( have_posts() ) : the_post(); ... endwhile;Але на сторінці архіву зазвичай потрібно відображати лише резюме статті, а не її повний текст. Для цього можна використовувати відповідні функції системи.the_excerpt()Функція.
Щоб краще керувати циклами, особливо під час виконання власних запитів, вам потрібно знати…WP_QueryКласи. Наприклад, на головній сторінці відображати лише статті певної категорії:
<?php
$custom_query = new WP_Query( array(
'category_name' => 'featured',
'posts_per_page' => 3,
) );
if ( $custom_query->have_posts() ) :
while ( $custom_query->have_posts() ) : $custom_query->the_post();
// 显示文章内容
endwhile;
wp_reset_postdata(); // 重置主查询数据
endif;
?> Пам’ятайте, що після виконання користувацького запиту необхідно використовувати…wp_reset_postdata()Щоб відновити глобальні налаштування…$postЗмінні мають вирішальне значення; їх відсутність може вплинути на правильне відображення наступних компонентів шаблону (наприклад, бічних панелей).
підсумок
Від моменту створення…style.css和index.phpПочаток… До розуміння структури шаблонів, до їх ефективного використання.functions.phpВи додали нові функції, розділили компоненти шаблону та оптимізували цикли коду, завершивши таким чином базовий, але повний процес розробки теми для WordPress. Ключовим моментом є дотримання стандартів та правил WordPress – це гарантує хорошу сумісність вашої теми та її легкість у обслуговуванні. Наступним кроком може бути додавання більш детальної метаінформації до статей, інтеграція власних типів статей чи використання таких препроцесорів, як Sass, для керування стилями. Це допоможе зробити вашу тему ще більш професійною та потужною.
Часті запитання
Чи обов’язково для розробки тем для WordPress потрібно володіти мовою програмування PHP?
Так, PHP є основною мовою програмування для WordPress. Файли-шаблони тем (файли з розширенням .php) використовують PHP для динамічного генерування HTML-контенту, виклику функцій WordPress та обробки даних. Навіть при використанні інструментів для створення сторінок розуміння PHP є необхідним для глибокої налаштування системи та вирішення можливих проблем.
Яка функція файлу functions.php у темі?
functions.phpЦе “Функціональний центр” вашого тематичного файлу. Він призначений для увімкнення різних функцій теми (наприклад, меню, зображень-прев’ю), реєстрації областей для додавання плагінів та навігаційних меню, керування процесом завантаження скриптів та стилів, визначення власних функцій, а також для зміни стандартної поведінки WordPress за допомогою хуків (Actions та Filters). Цей файл автоматично завантажується під час ініціалізації теми.
Як зробити так, щоб моя тема підтримувала багатомовний переклад?
Вам потрібно виконати дві речі. По-перше, навколо всіх рядків, які потрібно перекласти, слід використовувати функції перекладу WordPress. Наприклад:__( ‘文本’, ‘my-theme-textdomain’ )或_e( ‘文本’, ‘my-theme-textdomain’ )І…style.css和functions.phpПо-перше, необхідно правильно налаштувати текстовий домен (Text Domain). По-друге, використовуйте інструменти на кшталт Poedit для створення шаблонних файлів формату .pot, а потім генеруйте відповідні мовні файли формату .mo та розмістіть їх у папці теми (theme folder)./languagesУ каталозі.
Як правильно включати файли CSS та JavaScript під час розробки тем?
Ніколи не використовуйте ці елементи чи теги безпосередньо у файлі шаблону. Правильний підхід полягає у їх використанні через відповідні механізми, передбачені системою.wp_enqueue_style()和wp_enqueue_script()Функції, а також монтування цих викликів…wp_enqueue_scriptsЦей механізм забезпечує належне встановлення залежностей між компонентами системи, запобігає їхньому багаторазовому завантаженню та сумісний із системою керування скриптами WordPress.
php
function my_theme_scripts() {
wp_enqueue_style( 'my-theme-style', get_stylesheet_uri() );
wp_enqueue_script( 'my-theme-navigation', get_template_directory_uri() . 'https://www.likacloud.com/js/navigation.js', array(), '1.0', true );
}
add_action( 'wp_enqueue_scripts', 'my_theme_scripts' );
Наступний крок, що робити далі?
Для подальшого читання та практичних знань
Наступні матеріали пов'язані з темою цієї статті і можуть бути корисними для подальшого вивчення. Зазвичай краще починати з статей, які найбільш тісно пов'язані з вашим поточною проблемою, а потім поступово переходити до суміжних тем.
- Чому варто обрати WordPress як основну платформу для створення веб-сайтів?
- Посібник з основ WordPress: створення вашого першого професійного веб-сайту з нуля
- Одноступінчате рішення для створення веб-сайту: повний посібник з реалізації від початку до запуску
- Передмова: Чому варто обирати WordPress для розробки?
- Як вибрати та налаштувати свій власний тематичний дизайн для WordPress: повний посібник від початківців до експертів