Інтеграція CMS WordPress для управління сайтом

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.
Розробка та обслуговування будь-яких видів сайтів:
Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

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

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Інтеграція CMS WordPress для управління сайтом
Середня
~3-5 робочих днів
Часті питання
Наші компетенції:
Етапи розробки
Останні роботи
  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Інтеграція CMS WordPress для керування сайтом

WordPress — не тільки блог-движок. При правильному налаштуванні це повнофункціональна CMS, на якій редактор керує контентом сайту, не торкаючись коду. Інтеграція передбачає: підключення WordPress до існуючого сайту або нового проекту, налаштування типів контенту, прав доступу та рабочих процесів публікації.

Варіанти інтеграції

Повний WordPress — движок видає як фронтенд, так і бекенд. Шаблонізація через PHP-теми. Підходить, якщо весь сайт побудований на WordPress.

WordPress як бекенд (Headless) — WordPress керує контентом через REST API або GraphQL (WPGraphQL), фронтенд на окремому стеку (React, Next.js, Vue). Підходить, якщо вже є фронтенд-додаток або потрібна максимальна гнучкість.

WordPress в підпапці — основний сайт окремо, блог/новини на site.com/blog через WordPress. Nginx-конфігурація розподіляє запити між двома додатками.

Встановлення та базова конфігурація

Мінімальні вимоги: PHP 8.0+, MySQL 8.0+ або MariaDB 10.4+, Nginx або Apache, 512 МБ RAM.

# Завантаження WordPress
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz -C /var/www/site.com/

wp-config.php — критичні параметри безпеки:

define('DB_NAME',     'wp_production');
define('DB_USER',     'wp_user');
define('DB_PASSWORD', getenv('WP_DB_PASSWORD')); // не в коді
define('DB_HOST',     '127.0.0.1:3306');

// Унікальні солі — генерувати на https://api.wordpress.org/secret-key/1.1/salt/
define('AUTH_KEY',         '...');
define('SECURE_AUTH_KEY',  '...');
// ... решта 6 ключів

// Відключити редактор файлів з панелі
define('DISALLOW_FILE_EDIT', true);

// Тільки оновлення безпеки
define('WP_AUTO_UPDATE_CORE', 'minor');

// Обмежити кількість ревізій
define('WP_POST_REVISIONS', 5);

// Перемістити wp-content
define('WP_CONTENT_DIR', '/var/www/site.com/content');
define('WP_CONTENT_URL', 'https://site.com/content');

WP CLI — незамінний інструмент для керування через командний рядок:

wp core install \
  --url="https://site.com" \
  --title="My Site" \
  --admin_user="admin" \
  --admin_email="[email protected]" \
  --admin_password="$(openssl rand -base64 24)"

Типи контенту під задачи сайту

Custom Post Types (CPT) — основа гнучкої CMS:

// functions.php або окремий плагін
add_action('init', function () {
    register_post_type('portfolio', [
        'labels' => [
            'name'          => 'Портфоліо',
            'singular_name' => 'Проект',
            'add_new_item'  => 'Добавити проект',
        ],
        'public'       => true,
        'has_archive'  => true,
        'show_in_rest' => true, // обов'язково для Gutenberg і REST API
        'supports'     => ['title', 'editor', 'thumbnail', 'excerpt', 'custom-fields'],
        'menu_icon'    => 'dashicons-portfolio',
        'rewrite'      => ['slug' => 'portfolio'],
    ]);
});

Кастомні поля через ACF (Advanced Custom Fields) — найпоширеніший спосіб додати структуровані дані:

// Програмна реєстрація полів (без GUI, зручно для команди)
add_action('acf/init', function () {
    if (!function_exists('acf_add_local_field_group')) return;

    acf_add_local_field_group([
        'key'    => 'group_portfolio_details',
        'title'  => 'Деталі проекту',
        'fields' => [
            [
                'key'   => 'field_client_name',
                'label' => 'Клієнт',
                'name'  => 'client_name',
                'type'  => 'text',
            ],
            [
                'key'   => 'field_project_url',
                'label' => 'URL проекту',
                'name'  => 'project_url',
                'type'  => 'url',
            ],
            [
                'key'          => 'field_technologies',
                'label'        => 'Технології',
                'name'         => 'technologies',
                'type'         => 'checkbox',
                'choices'      => ['react' => 'React', 'vue' => 'Vue', 'laravel' => 'Laravel'],
                'layout'       => 'horizontal',
            ],
        ],
        'location' => [[['param' => 'post_type', 'operator' => '==', 'value' => 'portfolio']]],
    ]);
});

Налаштування ролей та доступу

Для сайтів з кількома редакторами — розмежування прав:

// Кастомна роль «редактор новин»
add_role('news_editor', 'Редактор новин', [
    'read'         => true,
    'edit_posts'   => true,
    'publish_posts'=> false, // не може публікувати без одобрення
    'delete_posts' => false,
]);

// Обмежити доступ до CPT
$role = get_role('editor');
$role->add_cap('edit_portfolios');
$role->add_cap('publish_portfolios');
$role->remove_cap('edit_pages'); // не торкає статичних сторінок

Плагіни Members або User Role Editor спрощують керування ролями через інтерфейс, але для production-проекту краще фіксувати ролі в коді та розгортати з контролем версій.

Продуктивність

Кешування об'єктів — обов'язково для CMS з навантаженням. Redis Object Cache:

wp plugin install redis-cache --activate
wp config set WP_CACHE true
wp config set WP_REDIS_HOST 127.0.0.1
wp config set WP_REDIS_PORT 6379
wp redis enable

Page cache через Nginx (статична відача без PHP):

location / {
    set $cache_uri $request_uri;

    if ($request_method = POST) { set $cache_uri "null cache"; }
    if ($query_string != "")    { set $cache_uri "null cache"; }
    if ($http_cookie ~* "comment_author|wordpress_logged_in|wp-postpass") {
        set $cache_uri "null cache";
    }

    try_files /wp-content/cache/supercache/$http_host/$cache_uri/index.html
              $uri $uri/ /index.php?$args;
}

Розгортання та оновлення

WP CLI у CI/CD:

# Перевірити очікуючі оновлення
wp plugin list --update=available --format=json

# Оновити все (спочатку тестити на staging)
wp core update
wp plugin update --all
wp theme update --all

# Скинути кеш після розгортання
wp cache flush
wp rewrite flush

Бази даних WordPress потрібно версіонувати через міграції, якщо використовувати wp-cli/wp-cli-bundle або через плагін WP Migrate DB Pro для синхронізації staging/production.

Терміни

Встановлення, конфігурація безпеки, CPT, ACF-поля, ролі користувачів — 1–1,5 робочих дня. Налаштування Redis Object Cache, Nginx page cache — 3–4 години. WP CLI у CI/CD pipeline — 4–6 годин.