Как добавить rel="nofollow" к ссылке в модуле Nice Menus??? Меню находится вверху страницы Данфосс
Нужно добавить rel="nofollow" к ссылке дополнительного раскрывающегося меню, для того, чтобы поисковики не индексировали дублирующие внутренние ссылки!
Я пока только начинаю осваивать PHP, голову сломал но не получается добавить атрибут rel="nofollow" к ссылке! Народ помогите пожалуйста! Ниже кусок кода, где по моему необходимо внести изменения!
$output = '';
foreach ($menu as $menu_item) {
$mlid = $menu_item['link']['mlid'];
// Check to see if it is a visible menu item.
if ($menu_item['link']['hidden'] == 0) {
// Build class name based on menu path
// e.g. to give each menu item individual style.
// Strip funny symbols.
$clean_path = str_replace(array('http://', '<', '>', '&', '=', '?', ':'), '', $menu_item['link']['href']);
// Convert slashes to dashes.
$clean_path = str_replace('/', '-', $clean_path);
$path_class = 'menu-path-'. $clean_path;
// If it has children build a nice little tree under it.
if ((!empty($menu_item['link']['has_children'])) && (!empty($menu_item['below']))) {
// Keep passing children into the function 'til we get them all.
$children = theme('nice_menu_build', $menu_item['below']);
// Set the class to parent only of children are displayed.
$parent_class = $children ? 'menuparent ' : '';
$output .= '<li id="menu-'. $mlid .'" class="'. $parent_class . $path_class .'">'. theme('menu_item_link', $menu_item['link']);
// Build the child UL only if children are displayed for the user.
if ($children) {
$output .= '<ul>';
$output .= $children;
$output .= "</ul>\n";
}
$output .= "</li>\n";
}
else {
$output .= '<li id="menu-'. $mlid .'" class="'. $path_class .'">'. theme('menu_item_link', $menu_item['link']) .'</li>'."\n";
}
}
}
return $output;
}
Вложение | Размер |
---|---|
nice_menus.module | 13.01 КБ |
Комментарии
У вас там для сеошника море работы /taxonomy/term/11
https://www.drupal.org/project/menu_attributes
Спасибо, я видел этот модуль, но уж сильно не хочется плодить их на сайте, если теоретически можно решить проблему небольшой доработкой кода! Этот вариант подойдёт если совсем будет глухо с ответом на данный вопрос!
Это друпал 6 что ли?
$output .= '<li id="menu-'. $mlid .'" class="'. $path_class .'">'. theme('menu_item_link', $menu_item['link']) .'</li>'."\n";
попробуйте изменить на
$output .= '<li id="menu-'. $mlid .'" class="'. $path_class .'">'. theme('menu_item_link', $menu_item['link']) .'</li>'."\n";
для 7рки localized_options пишется как #localized_options
только тут должна быть не "доработка кода", а его переопределение в теме, ибо рано или поздно модуль обновится и все эти "доработки" попросту слетят.
Огромное спасибо! Всё получилось! Выкладываю готовый вариант, если кому будет интересно!
$output = '';
foreach ($menu as $menu_item) {
$mlid = $menu_item['link']['mlid'];
// Check to see if it is a visible menu item.
if ($menu_item['link']['hidden'] == 0) {
// Build class name based on menu path
// e.g. to give each menu item individual style.
// Strip funny symbols.
$clean_path = str_replace(array('http://', '<', '>', '&', '=', '?', ':'), '', $menu_item['link']['href']);
// Convert slashes to dashes.
$clean_path = str_replace('/', '-', $clean_path);
$path_class = 'menu-path-'. $clean_path;
// If it has children build a nice little tree under it.
if ((!empty($menu_item['link']['has_children'])) && (!empty($menu_item['below']))) {
// Keep passing children into the function 'til we get them all.
$children = theme('nice_menu_build', $menu_item['below']);
// Set the class to parent only of children are displayed.
$parent_class = $children ? 'menuparent ' : '';
$menu_item['link']['localized_options']['attributes']['rel'] = 'nofollow';
$output .= '<li id="menu-'. $mlid .'" class="'. $parent_class . $path_class .'">'. theme('menu_item_link', $menu_item['link']);
// Build the child UL only if children are displayed for the user.
if ($children) {
$output .= '<ul>';
$output .= $children;
$output .= "</ul>\n";
}
$output .= "</li>\n";
}
else {
$menu_item['link']['localized_options']['attributes']['rel'] = 'nofollow';
$output .= '<li id="menu-'. $mlid .'" class="'. $path_class .'">'. theme('menu_item_link', $menu_item['link']) .'</li>'."\n";
}
}
}
return $output;
}
по уму эту функцию надо было скопировать в template.php Вашей темы, переименовать её из theme_nice_menu_build в ИМЯ_ТЕМЫ_nice_menu_build и сбросить кеш