Небольшая инструкция о том, как я вывел на основном сайте таблицы товаров из определенных категорий, и прикрепил к ним поддомены не создавая отдельно сайты.
Сегодня решил упростить данную схему, т.к. тема оказалась для меня не нужной.
Часть 1
1. Работа начинается с файла на главном сайте functions.php.
В нем создаем новый шорткод [ products_table ], который выводит таблицу товаров с колонками:
Название, Цена, Ссылка на сайт (берётся из краткого описания товара - нестандартно и необычно, но у меня так устроено) и Тематика (значение глобального атрибута pa_thematics)
2. Автоматическая сортировка по "Тематике" (А–Я)
3. Добавление столбца "Атрибуты" в админку WooCommerce
Т.е. на сайте при переходе в Товары Woocmerce - добавился еще столбец "Атрибуты".
В самих товарах я добавлял отдельный (собственный) атрибут, в алфавитном порядке по которому происходила сортировка в конечной таблице.
4. В итоге я создал несколько страниц, например страницу на которой только таблица сайтов с доменами, присвоил ей url /telderi.html
и разместил на ней шорткод [ products_table category="domain" ]
На страницах отдельных для домена выбрал шаблон страницы - Landing Page. Чтобы страница была чистая, белая без хедера, саайдбара, футтера сайта.
Мета-теги уже не формировались, пришлось title и desc прямо в текст страницы добавить.
Часть 2
5. Добавил несколько поддоменов, подключил их к основному сайту.
Чтобы они не индексировались добавил на сайт в файл header.php
<?php
$blocked_subdomains = ['kwork.zaplata.ru', 'telderi.zaplata.ru', 'wpgrabber.zaplata.ru'];
if (in_array($_SERVER['HTTP_HOST'], $blocked_subdomains)) {
echo '<meta name="robots" content="noindex,nofollow">' . "\n";
}
?>
Также предусмотрел, чтобы переходя по поддоменам на другие внутренние страницы основного сайта - перехода не было.
При переходе например на https://kwork.zaplata.ru или https://kwork.zaplata.ru/site.html - всегда был редирект на страницу с его таблицей (но и URL не менялся), т.е. при переходе на любую страницу https://kwork.zaplata.ru, редиректил всегда на https://kwork.zaplata.ru/kwork.html
Для этого на главном сайте .htaccess file добавил правила редиректа (я их поправлял, т.к. сначала и сама конечная страница циклично редиректила на саму себя).
Также на сайте был в корне добавлен на всякий случай собственный файл Robots.txt для поддоменов (robots-disallow.php)
# Список поддоменов, которые являются дублями и не должны индексироваться
RewriteCond %{HTTP_HOST} ^(kwork|telderi|wpgrabber)\.zaplata\.ru$ [NC]
# 1. Перехватываем /robots.txt и отдаем запрещающий вариант
RewriteRule ^robots\.txt$ /robots-disallow.php [L]
# 2. Автоматически вставляем <meta name="robots" content="noindex,nofollow"> в <head>
<IfModule mod_substitute.c>
AddOutputFilterByType SUBSTITUTE text/html
Substitute "s|<head>|<head><meta name=\"robots\" content=\"noindex,nofollow\">|i"
</IfModule>
# === РЕДИРЕКТ ДЛЯ kwork.zaplata.ru (без зацикливания) ===
RewriteCond %{HTTP_HOST} ^(www\.)?kwork\.zaplata\.ru$ [NC]
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^ https://kwork.zaplata.ru/kwork.html [R=301,L]
# === РЕДИРЕКТ ДЛЯ telderi.zaplata.ru (без зацикливания) ===
RewriteCond %{HTTP_HOST} ^(www\.)?telderi\.zaplata\.ru$ [NC]
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^ https://telderi.zaplata.ru/telderi.html [R=301,L]
В итоге:
Можно перейти по поддомену (на любую страницу) и он покажет страницу с таблицей товаров WooCommerce с основного (другого) сайта.
На любую страницу поддомена переходим - нас отправляет на страницу с таблицей.
Она закрыта от индексирования.