Использование нескольких тем одновременно в WordPress

Оцените статью

Наконец-то я закончил с лэндингом для сайта и сейчас надо его собственно опубликовать в виде отдельного домена, а поступлю я хитро, а именно сделаю отдельную страницу в WordPress, установлю на нее отдельную от основного блога тему (которую отдельно собственно и делал) и выложу на отдельный домен как корневую, через rewrite в Nginx.

Во-первых, создаем страницу и назовем ее допустим landing.

Через настройки AIOSEO меняем заголовок страницы.

Публикуем страницу и смотрим как она выглядит в браузере.

Это конечно не то, что нам нужно, но главное, что у нее теперь есть отдельный url https://interlan.xyz/landing/ и после того как накрутим дополнительную тему, там будет совершенно другая богадельня.

Для того чтобы нам использовать разные темы воспользуемся плагином jonradio-multiple-themes и скачать его можно по адресу https://wordpress.org/plugins/jonradio-multiple-themes/ и естественно его надо активировать.

Добавляем созданную тему, если кому интересно я часть наработок выложил на GitHub https://github.com/interlan-github/cv-blog.

Проверяем, что наша тема появилась в списке доступных в админке WordPress.

Тему мы не активируем, в настройках плагина Multiple Themes прописываем отдельную тему для этой страницы.

Шаблон для темы можно сгенерировать на сайте https://underscores.me.

На вкладке Site Aliases добавляем URL сайта лендинга.

Проверяем, что наша тема применилась только для отдельно взятой страницы.

Прописываем домены где будет располагаться наш лэндинг и выпускаем сертификаты let’s encrypt.

Получение сертификата командой:

# certbot -dry-run --nginx -d blog.anton-c.ru -d anton-c.ru -d www.anton-c.ru

Настраиваем Nginx для лэндинга.

server {
    if ($host = anton-c.ru) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80;
    server_name anton-c.ru;

    # Enforce HTTPS
    return 301 https://$server_name$request_uri;


}

server {
    listen 443      ssl http2;

    server_name anton-c.ru;

    access_log  /var/log/nginx/anton-c.ru-access.log;
    error_log  /var/log/nginx/anton-c.ru-error.log warn;
    ssl_certificate /etc/letsencrypt/live/blog.anton-c.ru/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/blog.anton-c.ru/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;" always;

    client_max_body_size 64M;
    fastcgi_buffers 64 4K;

    proxy_connect_timeout 600;
    proxy_send_timeout 600;
    proxy_read_timeout 600;
    send_timeout 600;

    gzip on;
    gzip_vary on;
    gzip_comp_level 4;
    gzip_min_length 256;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;

    add_header Referrer-Policy                      "no-referrer"   always;
    add_header X-Content-Type-Options               "nosniff"       always;
    add_header X-Download-Options                   "noopen"        always;
    add_header X-Frame-Options                      "SAMEORIGIN"    always;
    add_header X-Permitted-Cross-Domain-Policies    "none"          always;
    add_header X-XSS-Protection                     "1; mode=block" always;

    fastcgi_hide_header X-Powered-By;

    root /srv/www/wordpress;

    location ~ ^/$ {
       return 301 https://anton-c.ru/landing/;
    }

    location / {
       index index.php;
       try_files $uri $uri/ /index.php;
    }

    location ~* \.php$ {
         fastcgi_split_path_info ^(.+?\.php)(/.*)$;
         if (!-f $document_root$fastcgi_script_name) {return 404;}
         fastcgi_pass  unix:/run/php/php8.1-fpm.sock;
         fastcgi_index index.php;
         include fastcgi_params;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

}

Здесь помимо стандартного конфига который я уже описывал в заметке «Установка WordPress в Bare Metal Ubuntu 24.04 LTS» добавлен только блок:

    location ~ ^/$ {
       return 301 https://anton-c.ru/landing/;
    }

Похожие записи

Топ-9 нейросетей для генерации изображений в 2026 году

Когда я решил побаловаться и поиграть с AI генераторами изображений я и не знал что их так много и раз уж начал веселиться, то поздно останавливаться. Я подготовил для вас…

Подробная инструкция по написанию YAML‑файлов для Docker Compose

Так как на севере делать абсолютно нечего, то я продолжаю заниматься саморазвитием 🙂 На этой неделе вспоминаю и углубляю свои знания в Docker. Лучший способ запомнить тему, это вести конспект…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читать еще статьи

Топ-9 нейросетей для генерации изображений в 2026 году

Топ-9 нейросетей для генерации изображений в 2026 году

Настройка взаимодействия RED ADM и Windows Active Directory

Настройка взаимодействия RED ADM и Windows Active Directory

Подробная инструкция по написанию YAML‑файлов для Docker Compose

Подробная инструкция по написанию YAML‑файлов для Docker Compose

Установка основного контроллера домена на базе REDADM

Установка основного контроллера домена на базе REDADM

zVirt работа с шаблонами виртуальных машин

zVirt работа с шаблонами виртуальных машин

Подробная инструкция по работе с томами (volumes) в Docker

Подробная инструкция по работе с томами (volumes) в Docker