Wie schließe ich die CSS-class basierend auf dem Post-Slug (in-Schleife) an?

Ich benutze diese function, um Körper- und einzelne Pfostenklassen von ihren Schnecken zu erhalten.

add_filter( 'post_class', 'fl_pages_bodyclass' ); add_filter('body_class','fl_pages_bodyclass'); function fl_pages_bodyclass($classes) { if (is_page() || is_single() ) { // get page slug global $post; $slug = get_post( $post )->post_name; // add slug to $classes array $classes[] = $slug; // return the $classes array return $classes; } else { return $classes; } } 

Diese function funktioniert einwandfrei, aber ich würde gerne Beiträge in Loops einfügen. Ich habe versucht zu entfernen, if(is_ ..) . Dann funktioniert es, aber ein Problem entsteht auf einer 404-Seite – ich habe “Versuch, Eigenschaft von Nicht-Objekt in” Fehler zu bekommen – so habe ich versucht, 404 Seite durch auszuschließen

 if (is_404() ) { return $classes; } 

Aber es funktioniert nicht. Was mache ich falsch? Oder wie kann ich Beiträge in Schleifen einbinden?

Solutions Collecting From Web of "Wie schließe ich die CSS-class basierend auf dem Post-Slug (in-Schleife) an?"

Der Fehler, den Sie erhalten, wird von $slug = get_post( $post )->post_name; weil auf einer 404-Seite kein post_name vorhanden ist. Um diesen Fehler zu vermeiden, müssen Sie die function so strukturieren, dass sie nicht auf diese Zeile kommt, wenn sie auf einer 404-Seite aufgerufen wird. So was:

 add_filter ('post_class', 'fl_pages_bodyclass'); add_filter ('body_class', 'fl_pages_bodyclass'); function fl_pages_bodyclass ($classes) { global $post; if (!is_404()) { $slug = get_post($post)->post_name; $classes[] = $slug; } return $classes; }