@Kypidon4ik
Фрилансер, делаю сайты на WP

Как добавить мета теги под фильтры для Wordpressa?

Добрый день! Поступила задача от рекламщиков по сайту который я делаю. Задача звучит так : "Добавить мета теги под фильтры , то есть если мы выбираем категорию столы, ставим фильтр (со стульями), то должно быть в H1 и самой закладке заголовок (Столы со стульями)." OZfomlqpLmcr
Раньше такие штуки не делал , встречаю в первый раз, подскажите как это реализовать, может быть есть гайд ?
  • Вопрос задан
  • 119 просмотров
Решения вопроса 1
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов artzolin.ru
Для того, чтобы пересобрать заголовок по условию, вам в любом случае нужна ссылка с get-переменными такого вида

https://example.loc/products/?type=furniture&color=white


Для плагина Yoast я делаю следующим образом:

  1. Создаю переменную %%InsteadTitle%%'
  2. Заменяю ее в настройках в админке
  3. Программно получаю get-параметры с добавлением из в заголовок
  4. Если язык русский, то прогоняю через фукнцию замены подстрок


function get_seo_instead_title() {

	$string = '';

	if ( is_single() && get_post_type() === 'product' ) {

		$string = get_the_title();
		$params   = array( 'type', 'color' );

		// Добавляем в заголовок параметры get-запроса
		foreach ( $params as $key => $param ) {
			$var = get_query_var( $param, false );

			if ( $var ) {
				$string .= ', ' . $var;
			}
		}

		// Делаем перевод
		if ( determine_locale() === 'ru_RU' ) {

			$converter = array(
				'furniture' => 'мебель',
				'white'     => 'белый',
			);

			$string = strtr( $string, $converter );
		}
	}

	if ( $string === '' ) {
		if ( is_post_type_archive() ) {
			$string = get_queried_object()->label;
		} elseif ( is_archive() ) {
			$string = get_queried_object()->name;
		} elseif ( is_single() ) {
			$string = get_the_title();
		} else {
			$string = 'Дефолтный заголовок (для главной)';
		}
	}

	return $string;

}

// Define the action for register yoast_variable replacments.
function register_custom_yoast_variables() {
	wpseo_register_var_replacement( '%%InsteadTitle%%', 'get_seo_instead_title', 'advanced', 'Some instead title text' );
}
add_action( 'wpseo_register_extra_replacements', 'register_custom_yoast_variables' );
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
vpetrov
@vpetrov
частный SEO-специалист
Такой функционал решается плагинами на большинстве движков для интернет-магазинов. Классика - это Сотбит SEO умного фильтра для Битрикс.
Все эти плагины - платные, ценник - от 7 до 15 тысяч рублей. Функционал прост: при выборе фильтров идёт 301-й редирект со страницы фильтратора (неуникальной) на особую страницу, где выводятся отфильтрованные товары, но на уникальных метатегах, с уникальным заголовком h1, своими текстовыми блоками.
Насколько я помню, для WooCommerce был такой плагинчик, но довольно кривой.
Рекламщикам стоило бы закатать губу: задачка довольно сложная, и разработка кастомного модуля может оказаться подороже всего сайта. Хотя, собственно, вот сейчас без такого модуля сайт магазина уже никуда не поедет.
Для примера реализации на кастоме (там не WP) можно посмотреть каталог bestceramic.ru: там фактически любое сочетание фильтров отдаст не страницу фильтрации, а полноценную посадочную страницу. Однако надо понимать, что чаще всего речь идёт не об автогенерации на шаблонах. Нужно внести условия под заданные фильтры, автогенерация будет только во вред.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы