Продолжаем рассматривать возможности Meta-Generator-а. На этот раз очень важного раздела Keyword Extractor Settings
Keyword Extractor Settings:
Теперь пришла очередь коснуться наиболее интересной части мета-генератора - экстрактора. Для чего он нужен? Не секрет что во многих PHP порталах тег title один и тот же на всех страницах. А это очень плохо сказывается на индексации. Для более успешной индексации необходимо, чтобы заголовки были привязаны к конкретной странице. То же самое нужно сделать и с ключевыми словами. Почему? Последнее время можно встретить утверждение, что многие поисковые системы вовсе отказались учитывать содержимое тега keywords. Это действительно так, Rambler, например, официально это заявляет, но тот же самый Яндекс читает и учитывает ключевые слова. Есть правда одна хитрость, Яндекс учитывает только те ключевые слова, которые встречаются в видимом тексте документа. Вот это как раз нам и нужно. Все дело в том, что пока мы имеем динамические адреса, Яндекс останется для нас главным поисковиком. Rambler и Google индексируют динамику плохо о Апорт-е можно и вовсе забыть.
Экстрактор и решает эти две важные функции. Во-первых, он обрабатывает переменные расположенные после "?" в URL страниц и в результате выдает динамический title. Как это работает? Например мы имеем статью article.php?storyid=12. Экстрактор находит и загружает файл storyid.php в папке modules/system/admin/meta-generator/include/extractors/news.
Важно, чтобы название папки, соответствовало названию модуля, а имя файла – имени переменной.
Каждый файл, подобный storyid.php, содержит всего одну функцию get_meta(), которая в свою очередь является mysql запросом.
Функция get_meta() имеет всего 2 переменные:
$id: равна значению переменной, имя которой носит данный файл (в приведенном выше случае storyid=2, $id=2)
$limit: глубина просмотра базы данных (по умолчанию максимум)
В стандартном варианте, поддержка динамических title реализована для модулей: новости, глоссарий, архив файлов, ссылки, форум, записи, faq.
Но каждый может добавить эту поддержку для любого модуля. Рассмотрим это на примере. Допустим, у нас установлен Invision Board, и нам нужно, чтобы в title отображалось название топика и его описание. Создаем папку с именем ipboard. Номер топика находится в переменной «t», поэтому файл с функцией get_meta() будет носить название t.php. Сама функция будет иметь, например, следующий вид:
Код:
function get_meta($id, $limit) { global $db;
$SQL = " SELECT t.title, t.description, P.post FROM ".$db->prefix("ipb_topics")." t,
Все, теперь в title будет прописано как название топика, так и его описание. Подобным образом можно подключить к мета-генератору и все остальные модули.
Следующая важная функция экстрактора, заключается в том, что ключевые слова прописываются в зависимости от содержания текста. К спорным возможностям можно отнести расположение их в случайном порядке, а так же случайное изменение регистра букв ключевых слов.
Но это еще не все. В поле Wanted мы можем прописать желательные для нас ключевые слова, а в поле Unwanted те слова, которые необходимо исключать, если они встретятся в тексте.
Помимо этого, можно указать глубину поиска экстрактором ключевых слов (Max. Depth), и само их количество (Max. Words). Все это дает достаточно широкие возможности для оптимизации тега keywords.
Полезной окажется функция Cloaking (сокрытие) если она включена, то динамические мета – теги видны только поисковым роботам, а не браузерам, что естественно экономит ресурсы. В поле User Agents мы как раз и прописываем браузеры, для которых экстрактор отключен.
Ну и последнее поле мета – генератора Import Wordlist позволяет нам импортировать текстовые файлы с ключевыми словами в списки Wanted или Unwanted.
В заключении обещанный хак, добавляющий в мета-генераторе поддержку динамического description для статей. За основу мы берем данные из Intro Text, они хранятся в поле hometext таблицы e_xoops_stories. Введем новую переменную $result["description"], для этого в файле functions.php, он находится в modules/system/admin/meta-generator/include/ , меняем кусок кода:
Код:
// The actual keywords & title, if buil_data returns a emtpty data, we use the defaut one. $meta['keywords'] = build_data($result); $meta['title'] = $meta['title'] . ": " . $result["title"];
на
Код:
// The actual keywords & title, if buil_data returns a emtpty data, we use the defaut one. $meta['keywords'] = build_data($result); $meta['title'] = $meta['title'] . ": " . $result["title"]; $meta['description'] = $result["description"];
Далее в файле storyid.php в папке modules/system/admin/meta-generator/include/extractors/news/ перед return $result; вставляем $result["description"] = strip_tags ($hometext);
В переменной $hometext у нас хранится описание статьи, а функцию strip_tags() мы применяем, чтобы отрезать, теги HTML кода, если они будут у Вас в описании.
Все, после этого в мета-теге description будет прописана информация из Intro Text (описания статьи).
По неосторожности поудалял все слова из поля Wanted после чего Мета-Ген выдает ошибку и вся нижняя часть не грузится. Как вернуть все в исходное положение?