Как сделать переменное слово в заголовках и контенте мультисайта WP?
На мультисайте хочу написать в заголовке и контенте:
Пластиковые окна %city%
У каждого сайта в description написать название города.
И как сделать, чтобы каждое %city% заменялось на город из description.
Не знаю даже как называется этот прием и как загуглить.
Дополнительные вопросы
Как сайту понимать, какое слово выводить? И сразу ещё вопрос - Вы же понимаете, что достаточно быстро отлетите в теневой бан и в органике Вас видно не будет?
Артем Золин @artzolin Куратор тега WordPress php, WordPress разработка сайтов artzolin.ru Расскажу как это работает у меня. Есть большая excel-таблица со списком городов и их склонениями. В customizer сделан селект с выбором города из столбца title, парсится таблица с помощью библиотеки SimpleXLSX
Выбранный город со всеми склонениями сохраняется в wp_options, шорткод [city type="gde"] выводит нужный падеж
Ответы:
1) Добавить через ACF текстовое поле в options (если глобально) или для страницы (если в каждой странице надо отдельно) и выводить его где надо (можно сделать все как хочется в том числе то что в пункте 2)
2) Поставить All in One SEO и установливать для каждой страницы заголовки и другие мета данные страницы (более гибкое)
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос


То, что вы хотите, обычно называется шаблонной подстановкой, placeholder replacement или dynamic content. На мультисайте WordPress можно хранить город в настройках каждого сайта и заменять
%city%в заголовках/контенте при выводе.Я бы не брал город из description. Description нужен для SEO/описания, а не как техническое поле. Лучше завести отдельную опцию, например
site_city, и заполнять её для каждого сайта сети.Минимальная идея замены:
function wturm_get_site_city() { $city = get_option('site_city'); return $city ? $city : ''; } function wturm_replace_city_placeholder($text) { $city = wturm_get_site_city(); return str_replace('%city%', esc_html($city), $text); } add_filter('the_title', 'wturm_replace_city_placeholder'); add_filter('the_content', 'wturm_replace_city_placeholder');
Но для
the_contentлучше быть аккуратнее: если контент содержит HTML,esc_htmlвнутри всей строки может быть неуместен. Безопаснее экранировать только значение города:function wturm_replace_city_placeholder($text) { $city = esc_html((string) get_option('site_city')); return str_replace('%city%', $city, $text); }
Для SEO-плагина отдельно могут понадобиться фильтры title/description. Например, у Yoast есть фильтры для мета-заголовков и описаний. Иначе на странице текст заменится, а SEO title может остаться с
%city%.Важное SEO-предупреждение: если вы создаёте много сайтов с одинаковым текстом, где меняется только город, это почти всегда слабая стратегия. Поисковые системы видят такие страницы как шаблонные дубли. Чтобы не получить проблемы, для каждого города должны быть реальные отличия: условия доставки, контакты, локальные примеры, цены, фотографии, отзывы, адреса, особенности услуги.
Итог: технически это делается через placeholder и фильтры WordPress. Но город лучше хранить в отдельном поле сайта, а не в description, и не строить всю сеть на одной механической замене слова.