Интеграция 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);

// Автообновления только для security-патчей
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'],
    ]);
});

Custom Fields через 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 часов.