W wordpress’owym szablonie single.php, który odpowiada za wyświetlenie pojedynczego wpisu używana często jest funkcja
post_class();
Funkcja ta generuje szereg klas typu:
class="post-395 post type-post status-publish format-standard hentry category-sample category-wyroznione"
Konflikt Rich Snippets
Klasy te często są przydatne i na części z nich z pewnością opierają się definicje CSS. Problem w tym, że jeżeli na blogu posiadamy zaimplementowane Google Rich Snippets w formacie innym niż microformats to klasa „hentry” będzie powodować błędy widoczne na screenie.
Gwoli wyjaśnienia, Google Rich Snippets można implementować na 3 sposoby:
- microdata – składnia itemscope itemtype=”…”
- microformats – składnia class=”…”
- RDF – składnia property=”v:…”
Rekomendowanym przez Google formatem jest microdata wraz z opisem schematów z schema.org. Bardzo dziwne zatem jest podejście twórców WordPressa, którzy domyślne umieszczają w kodzie element microformats przez co defakto wymuszają u programistów używanie właśnie tego rodzaju rich snippets.
Jeżeli programista opisze inne elementy strony w innym rodzaju rich snippets to przy walidacji otrzyma błąd.
Usuwamy klasę hentry
Najprostszym i skutecznym usunięciem niechcianej klasy jest stworzenie funkcji w funkctions.php i podpięcie jej pod zdarzenie „post_class”:
function remove_hentry($classes) { $classes = array_diff($classes, array('hentry')); return $classes; } add_filter('post_class', 'remove_hentry');
Funkcją tą można usunąć dowolną klasę ze zbioru automatycznie generowanych klas.
rewelacyjne rozwiązanie udało mi się usunąć błędy z mojej strony. bardzo pomocny jest opis
polecam wszystkim web masterom.
Dzięki za pomoc. Ten krótki skrypt pozwolił mi usunąć błędy „hentry” pomimo, że jestem laikiem w dziedzinie programowania. A stronę wrzucę sobie do zakładek bo pewnie mi się jeszcze przyda :)
Jeszcze raz dziękuję.
A jak się pozbyć błędów np. w kategoriach (/category/…), tagach (/tag/…), postach autora (/author/…) i zakładce z blogiem (/blog/) ? Tam GWT pokazuje mi błąd „Brakujące elementy: author”.
PS. Przydała by się jakaś opcja powiadamiania o odpowiedziach w komentarzach…
Jestem laikiem ale czy ja to dobrze dodałem martwi mnie że w google webmaster widzi nadal ponad 115 hentrów liczba ta spadła na 109 czy to działa ? Proszę może o niewielką pomoc i wyrozumiałość
}
function theme_get_post_class() {
return implode(’ ’, get_post_class());
function remove_hentry($classes) {
$classes = array_diff($classes, array(’hentry’));
return $classes;
}
add_filter(’post_class’, 'remove_hentry’);
}
function theme_include_lib($name) {
locate_template(array(’library/’ . $name), true);
}
cześć adiasz , dzięki za informacje męczę ten temat od dwóch dni