Jak usunąć klasę „hentry” z WordPress?

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.

Błędy hentry w wordpress

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.

5 komentarzy do “Jak usunąć klasę „hentry” z WordPress?”

  1. rewelacyjne rozwiązanie udało mi się usunąć błędy z mojej strony. bardzo pomocny jest opis
    polecam wszystkim web masterom.

  2. 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ę.

  3. 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…

  4. 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);
    }

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *