Как сделать переменное слово в заголовках и контенте мультисайта WP?

Ссылка скопирована
1 ответ

На мультисайте хочу написать в заголовке и контенте:
Пластиковые окна %city%

У каждого сайта в description написать название города.
И как сделать, чтобы каждое %city% заменялось на город из description.

Не знаю даже как называется этот прием и как загуглить.

Дополнительные вопросы

Как сайту понимать, какое слово выводить? И сразу ещё вопрос - Вы же понимаете, что достаточно быстро отлетите в теневой бан и в органике Вас видно не будет?

  • Михаил Р., у меня всего одно слово будет, поэтому вижу функцию, в которой указан частный случай, что все %city% заменить на blog description.
  • Алексей, Вы не ответили на вопрос. Как сайту понимать, какое слово выводить? Условие какое?
  • Михаил Р., bloginfo('description'); содержит одно это слово. Условие - вывести весь description если вы об этом.
  • Как сделать переменное слово в заголовках и контенте мультисайта WP?

    Артем Золин @artzolin Куратор тега WordPress php, WordPress разработка сайтов artzolin.ru Расскажу как это работает у меня. Есть большая excel-таблица со списком городов и их склонениями. В customizer сделан селект с выбором города из столбца title, парсится таблица с помощью библиотеки SimpleXLSX

    Выбранный город со всеми склонениями сохраняется в wp_options, шорткод [city type="gde"] выводит нужный падеж

    Как сделать переменное слово в заголовках и контенте мультисайта WP?

    Ответы:

    1) Добавить через ACF текстовое поле в options (если глобально) или для страницы (если в каждой странице надо отдельно) и выводить его где надо (можно сделать все как хочется в том числе то что в пункте 2)

    2) Поставить All in One SEO и установливать для каждой страницы заголовки и другие мета данные страницы (более гибкое)

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Павел Админов Ответ

    То, что вы хотите, обычно называется шаблонной подстановкой, 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');

    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);
    }

    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, и не строить всю сеть на одной механической замене слова.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

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

    Вам также может быть интересно