×

Практика ПМ 03

В данном гайде предоставлена ВСЯ информация об установке/натяжке кастомной темы.
Вам будут предоставлены файлы
1. wordpress.zip (Абсолютно голый вордпресс)
2. html (Файл с готовой структурой сайта, её надо будет натянуть на кастом тему.)
3. css (Файлы с версткой, которую надо будет натянуть на кастом тему.)
4. возможно плагины.

Экзамен с ответами

Открываете через OpenServerPanel папку с доменами

Распаковываете содержимое wordpress.zip в папку с доменами, перезагружаете OpenServerPanel.

ПЕРВИЧНАЯ НАСТРОЙКА

В phpMyAdmin создать базу данных (например: exam2025).

Перейти в браузере на http://localhost/имя_проекта → пройти установку:

  • Название сайта: по заданию
  • Логин: НЕ admin, лучше bahtiar
  • Пароль: сложный, типа Qz@r982#
  • Email: любой

ПЛАГИНЫ

Wordfence Security

Установка:

  • В админке WordPress: Плагины → Добавить новый → Wordfence Security
  • Установить и активировать

Настройка:

  • При активации — укажи свою почту (чтоб присылал уведомления)
  • Выбери Free (бесплатная версия)

Далее делай:

  • Перейди в Wordfence → Dashboard
  • Нажми «Start a Scan» — пусть проверит файлы сайта

Двухфакторка:

  • Перейди Wordfence → Login Security
  • Включи двухфакторную аутентификацию (2FA) через приложение (Google Authenticator или Authy)
  • Отсканируй QR-код, сохрани резервный код — иначе хрен войдёшь, если потеряешь телефон

Брандмауэр (firewall):

  • Wordfence → Firewall
  • Нажми кнопку «Optimize the Firewall»
  • Следуй инструкциям (может попросить доступ к .htaccess — соглашаемся)

Рекомендации:

  • Включи уведомления на почту о попытках взлома
  • Установи лимит блокировки по IP, если кто-то долбит логин/пароль

Limit Login Attempts Reloaded — ограничение входов

Как настроить:

  1. Установка:
    • Плагины → Добавить → Поиск: Limit Login Attempts Reloaded
    • Установить и активировать
  2. Настройка:
    • Перейди: Настройки → Limit Login Attempts
    • Установи значения:
      • Allowed Retries: 3
      • Lockout Duration: 20 мин
      • Hours until retries reset: 12
      • Max lockouts before extended lockout: 4
      • Time length of extended lockout: 24 часа
  3. Включи лог IP-адресов — тогда увидишь, кто ломится
  4. (По желанию): включи отправку уведомлений на почту, если будет слишком много попыток входа.

WP Cerber Security — антиспам и защита доступа

Как настроить:

  1. Установка:
    • Плагины → Добавить → WP Cerber Security
    • Установить, активировать
  2. Настройка входа:
    • Перейди: WP Cerber → Access Settings
    • Измени Custom login URL — вместо wp-login.php, сделай например secure-panel
      • Тогда адрес входа станет site.kz/secure-panel
        ⚠️ Не забудь сохранить где-нибудь адрес, иначе в админку не попадёшь!!!!!!!!
  3. Ограничения:
    • В той же вкладке:
      • Limit login attempts: Включено
      • Login attempts: 3
      • Block IP for: 60 мин
      • Notify admin if: X failed attempts
  4. Антиспам:
    • WP Cerber → Anti-spam
    • Включи: Protect all forms on the website
  5. Фильтрация IP:
    • Можно создать белый/чёрный список IP (если надо ограничить доступ)
  6. Сканер:
    • Есть встроенный антивирус: WP Cerber → Site Integrity
    • Нажми Scan Site — найдёт лишние скрипты, трояны и дрянь

Натяжка HTML-шаблона на тему WordPress

📁 Структура темы:

Создай папку: wp-content/themes/Ivanov-theme/
СНИЗУ ГАЙД ДЛЯ БАХТИЯРА

СТРУКТУРА ТЕМЫ
Ivanov-theme/
├── style.css
├── index.php
├── functions.php
├── header.php
├── footer.php
├── js/
│ └── main.js
├── css/
│ └── styles.css
├── screenshot.png
СТРУКТУРА КОДА:
style.css:

/*
Theme Name: <ВАША ТЕМА ЗДЕСЬ>
Author: Bahtiar
Version: 1.0
*/

<styles>
|СЮДА КОД ИЗ ГОТОВОЙ ВЕРСТКИ|
</styles>

ВНИМАНИЕ: style.css должен быть в корне папки темы. Даже если ты все стили пишешь в других файлах — эта шапка ОБЯЗАТЕЛЬНА(╬▔皿▔)╯
Без этой шапки WP не покажет тему в админке.

index.php
пиздец бля..

<?php get_header(); ?>

<h1><?php the_title(); ?></h1>
<div>
  <?php the_content(); ?>
</div>

<?php get_footer(); ?>

⚠️ Даже если весь HTML будешь делать позже — этот файл должен быть, хоть пустой.

functions.php

<?php
function CUSTOM!_theme_scripts() {
    wp_enqueue_style('main-style', get_stylesheet_uri());
    wp_enqueue_script('main-js', get_template_directory_uri() . '/js/main.js', [], false, true);
}
add_action('wp_enqueue_scripts', 'CUSTOM!_theme_scripts');

CUSTOM! — заменяете на название вашей ТЕМЫ!

header.php

<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
  <meta charset="<?php bloginfo('charset'); ?>">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title><?php wp_title(); ?></title>
  <?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
<header>
  <h1><?php bloginfo('name'); ?></h1>
</header>

Сюда выносим всё от <!DOCTYPE html> до <main>. Пример сверху,
СМОТРИТЕ ВНИМАТЕЛЬНО И СВЕРЯЙТЕ С ВЫДАННЫМИ ФАЙЛАМИ ВЕРСТКИ.

footer.phpПодвал сайта

Всё, что после </main> и до </body>

<footer>
<p>© <?php echo date('Y'); ?> CUSTOM! Theme</p>
</footer>
<?php wp_footer(); ?>
</body>
</html>


CUSTOM! — заменяете на название вашей ТЕМЫ!

screenshot.pngПревью темы

Без него тема будет без превью в админке, но всё остальное будет работать

Размер: 880×660 px

Просто картинка (скриншот твоего шаблона), скорее всего идет с вашей версткой.

Пример картинки 880×660 px