// Добавляем canonical для страниц поиска
// Конфигурация - что включать в canonical
$GLOBALS['canonical_config'] = array(
'include' => array(
'sPattern' => true, // включить поисковый запрос
'sCategory' => false, // включить категорию
'sCountry' => false, // включать страну
'sRegion' => false, // включить регион
'sCity' => false, // включить город
'sUser' => false, // включать пользователя
),
'exclude_always' => array(
'iPage', 'sOrder', 'iOrderType', 'bPicOnly', 'sShowAs'
)
);
function my_configurable_canonical() {
global $canonical_config;
if (!osc_is_search_page()) return;
$params = Params::getParamsAsArray();
$clean_params = array('page' => 'search');
// Добавляем разрешенные параметры
foreach ($canonical_config['include'] as $param => $include) {
if ($include && isset($params[$param]) && !empty($params[$param])) {
$clean_params[$param] = $params[$param];}}
// Формируем URL
$canonical_url = osc_base_url() . 'index.php?' . http_build_query($clean_params);
echo '<link rel="canonical" href="' . $canonical_url . '" />' . PHP_EOL;
}
osc_add_hook('header', 'my_configurable_canonical', 5);