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

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

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

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

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

Это конечно не то, что нам нужно, но главное, что у нее теперь есть отдельный url https://blog.anton-c.ru/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/;
    }

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

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