Изменение порядка вывода мета-тегов Nodewords в заголовке
У меня есть запрос на изменение порядка, в котором мета-элементы печатаются в заголовке, с помощью Nodewords модуля contrib в D6. Более конкретно, свойство хотело бы, чтобы описание появлялось перед ключевыми словами (согласно их SEO-консультанту).
Возможно ли это? Бесплодный? Глупый?
Я искал до сих пор безрезультатно.
3 answers
Вы можете реализовать hook_nodewords_tags_alter, который изменит отображение тегов. Он принимает function MODULENAME_nodewords_tags_alter(&$output_tags, $tag_options) {}
.
Но почему вы хотите это сделать? Есть какие-нибудь идеи по SEO, которыми вы могли бы поделиться с нами?
Я собираюсь добавить функцию hook_nodewords_tags_info_alter() в следующий выпуск 1.x: http://drupal.org/node/1730808
Дэмиен Маккенна Сопровождающий Nodewords
Если вы используете ветвь 6.x-2, вам необходимо реализовать hook_nodewords_tags_info_alter()
, чтобы изменить индекс веса, содержащийся в массиве, возвращаемом реализациями hook_nodewords_tags_info()
.
Вес используется _nodewords_output_tags()
, которая является функцией, отображающей вывод HTML для мета-тегов. Как только функция построит массив строк HTML для вывода, она сортирует массив, используя следующий код:
if (count($output)) {
array_multisort($weights, $output);
return implode("\n", $output);
}
else {
return '';
}
$weights
является массивом, содержащим вес каждого выходного мета-тега.
Я не найдите любую причину для изменения веса мета-тега, если не в конкретном случае, когда потребитель мета-тега ищет два мета-тега и использует первый, который находит. Без конкретной и уважительной причины изменение веса метатегов бесполезно, так как потребители метатегов обычно не зависят от порядка присутствия метатегов в выводе HTML.
_nodewords_output_tags()
вызывается после реализаций hook_nodewords_tags_alter()
; изменение порядка элементов массива в hook_nodewords_tags_alter()
тогда не имеет эффект.
nodewords_load_all_includes('nodewords.hooks.inc');
drupal_alter('nodewords_tags', $output_tags, $options);
$output = _nodewords_output_tags($output_tags);
drupal_alter('nodewords_tags_output', $output, $options);