* Автоматичен meta description за WordPress
Публикувано на 28 април 2012 в раздел Общи работи.
По подразбиране WordPress не включва никакви meta description тагове в HTML кода. Представям ви лесен начин да генерирате автоматично такива за вашите страници и категории. За описание на страниците се взима първото изречение от текста в текущата статия, а за категориите тяхното описание зададено в WordPress. Кодът е малко "мръсен" и може да се изпипа, но ще опиша в коментари кое-как и защо е направено. Методът е следния - отворете header.php файла на вашата тема и добавете кода в <head> часта:
<?php // В началото добавяме подзаглавието на сайта $meta = get_bloginfo('description').': '; // Проверява дали е страница или пост if (is_singular()){ // Намираме къде свършва първото изречение $pos = mb_strpos($post->post_content, ". ", 0, 'UTF-8'); // Ако е намерено първо изречение, то го добавяме if($pos !==false) $meta .= mb_substr($post->post_content, 0, $pos, 'UTF-8'); // В противен случай взимаме целия пост else $meta .= $post->post_content; } elseif (is_category()){ // ако сме в категория с много статии // Добавяме описанието на категорията $meta .= category_description(); } // Задължително премахваме всякакви HTML тагове // и прекодираме кавичките и специалните символи $meta = htmlentities(strip_tags($meta), ENT_QUOTES, 'UTF-8'); // Премахваме нови редове, табулации и празни интервали // Поредици от празни интервали се получават често, когато // имате много къс първи параграф в който няма точка. $meta = str_replace(array("\n","\r","\t",' ',' '),' ', $meta); // Ако meta description е по-дълъг от 255, то го скъсяваме if(mb_strlen($meta)>=255) $meta = mb_substr($meta, 0, 254); // Отпечатваме мета тага echo "<meta name='description' content='{$meta}' />\n"; ?>
Предполагам, че може да се поправи и да стане доста по-прилично. Направих редица тестове и изглежда, че се справя добре с UTF-8 кодировка. За 404 и страници генерирани от търсене не се слага meta description. Ако някой забележи грешки или намери начин за оптимизация, нека сподели.
Някои по-нататъшни насоки:
- Винаги започвайте статиите си с описателно първо изречение, като по възможност включвайте важната ключова дума;
- Избягвайте да започвате с параграф с едно единствено изречение;
- Стремете се първото ви изречение да е в рамките на 150 символа.
Колкото до мета тага за ключови думи (meta keywords) - там нещата са доста по-сложни. Автоматизираното разпознаване на добри ключови думи не е толкова проста работа. По-нататък евентуално ще завърша скрипт и за това.
Добави коментар