Керуємо мета-тегом keywords у Virtuemart 1
Технічне обслуговування сайтів.
Керуємо мета-тегом keywords у Virtuemart 1.1 з адмінки
Щось я давно не писав великих нудних статей з потрібним контентом ...
Вирішив я розродитися цього разу на тему SEO, а саме:
Мета-тег keywords хоч і кажуть, що не враховується пошуковими системами, все ж, як з'ясувалося, має значення і кейворди, в невмілих руках, більш шкідливі, ніж корисні, хоча, в умілих руках можуть послужити дуже хорошу службу . Говорячи про останні, я маю на увазі професійних фахівців із пошукової оптимізації (сам я не фахівець, але з одним таким гуру я працюю).
Власне, Joomla 1.5 є можливість ставити кейворди, але Virtuemart 1.1.x зовсім не вміє з ними поводитися.
Чому тут немає жодного слова про те, як керувати тегом description. Virtuemart сам чудово ставить його з короткого опису товару і по суті дії відрізняються не сильно. Ну, і в рунеті інформації з цієї теми — валом, інша річ, що з кейвордів треба подумати.
База даних
Можна зробити їх руками, тоді так:
Поле: category_meta_keyword;Тип: VARCHAR;Довжина/значення: 255;За замовчуванням: НІ;Порівняння: utf8_general_ci;
Я зробив їх після поля з описом, мені так зручніше і логічніше, потім я зможу знайти їх і в базі, і в коді, якщо що.
Після того, як поля створені, можна приступати до коду.
Видаляємо порожні ключові слова з Joomla
У Джумлі є така капосна "особливість" - якщо тег keywords порожній (наприклад, прибрали з налаштувань текст) - у коді все одно з'являється це:
що не є гут. Щоб було гут і порожнього тега не було – відкриваємо файл
/libraries/joomla/document/html/renderer/head.php
і, приблизно в рядку 77, шукаємо код
або, якщо хочемоприбрати мета-тег keywords, замість
з попереднього коду, пишемо
Сенс у тому, що у файліhead.php генерується все, що буде в тегах… і мета-теги генеруються за допомогою аналізу асоціативного масиву. Тепер, сподіваюся, зрозуміліше 🙂
Keywords у картці товару Virtuemart
Робимо поле у адмінці. Для цього відкриваємо файл/administrator/components/com_virtuemart/html/product.product_form.php і шукаємо там місце, де збираються таби, а саме приблизно 352 рядок. Після цього рядка вставляємо це:
Це буде нове поле в адмінці Virtuemart, в яке задоволений сеошник вводитиме ключові слова для товару. Вставляти код можна в будь-яке місце області редагування, аби не наплутати з версткою, бо перекосить все.
Тепер потрібно навчити Virtuemart зберігати вміст поля.
Відкриваємо файл/administrator/components/com_virtuemart/classes/ps_product.php і шукаємо там рядок… навіть немає… два рядки 🙂 Шукаємо рядок
і після неї вставляємо
Робимо це у двох місцях: перше місце – приблизно 278 рядок, друге – 480 . Тобто, у двох функціях:add(&$d) таupdate(&$d)
Відповідно, функція add відповідає за додавання нового товару, а update – за оновлення вже існуючого.
Півсправи зроблено, тепер наша виробка вміє зберігати поле в базу та оновлювати його.
Тепер треба зробити так, щоб ця справа все враховувалася. Для початку відкриваємо файл/administrator/components/com_virtuemart/html/shop_browse_queries.php і додаємо в запит наше полеproduct_meta_keyword, тобто, в рядку 37 додаємо в запит після `product_s_desc` наше `product_meta_keyword`, щобвийшло так:
Тепер відкриваємо/administrator/components/com_virtuemart/html/shop.browse.php і приблизно у рядку 595 після рядка
Цим ми зробимо так, щоб Virtuemart міг оперувати цією змінною у картці товару. У мене була така потреба, тому я зробив так. В принципі, якщо ви зробите так само - погано не буде, ви будете точно впевнені, де у вас лежить виклик цього кейворда і що він знаходиться саме в конкретній картці товару (якщо у вас кілька, наприклад), а магазину все одно, звідки ви додаєте мета-тег.
Залишилося зовсім небагато — додати в картку виклик змінної.
Відкриваємо файл з карткою товару (нехай буде/components/com_virtuemart/themes/default/templates/product_details/flypage.tpl.php ) і пишемо там:
На цьому із товаром, можна вважати, закінчили.
Відкриваємо/administrator/components/com_virtuemart/html/product.product_category_form.php - тут додамо поле введення в адмінці
Тепер у файлі/administrator/components/com_virtuemart/classes/ps_product_category.php знаходимо також дві функції -add таupdate.
функція add
Знаходимо рядок 248 (приблизно) та після рядка
function update
Знаходимо рядок 311 (приблизно) та після рядка
Настав час якось вивести тепер поле в мета-тег.
У файлі/administrator/components/com_virtuemart/html/shop.browse.php, не мудруючи лукаво, шукаємо такий шматок (приблизно рядок 67 ):
І замінюємо його на це:
Тобто, у рядку 69 ми додали наше полеcategory_meta_keywords у запит, щоб його звідти витягти і буквально відразу застосували отриманий результат.
Як видно, нічого надприродного я не написав, це скоріше запискана майбутнє, вузлик на згадку.
Успіхів! Читайте, пишіть Дякую, кому допомогло 🙂