So fügen Sie eine Body-class basierend auf einem benutzerdefinierten Taxonomiebegriff hinzu

Ich versuche, die Slugs von benutzerdefinierten Taxonomien als classn im öffnenden Body-Tag auf bestimmten WordPress-Seiten einzufügen. Was ich bisher gemacht habe, verursacht Fehler.

Ich habe ein wenig Hilfe mit den Beispielen hier und hier gefunden , und es funktioniert, außer dass es einen Fehler auf jeder Seite gibt, die keinen Begriff aus der “Abschnitt” Taxonomie hat.

Der Fehler ist:

Warning: join() [function.join]: Invalid arguments passed in /home/*****/public_html/example.com/wp-includes/post-template.php on line 387 

und der Code ist:

 // add classes to body based on custom taxonomy ('sections') // examples: section-about-us, section-start, section-nyc function section_id_class($classes) { global $post; $section_terms = get_the_terms($post->ID, 'section'); if ($section_terms && !is_wp_error($section_terms)) { $section_name = array(); foreach ($section_terms as $term) { $classes[] = 'section-' . $term->slug; } return $classes; } } add_filter('body_class', 'section_id_class'); 

Solutions Collecting From Web of "So fügen Sie eine Body-class basierend auf einem benutzerdefinierten Taxonomiebegriff hinzu"

Was ist der Job von $section_name ? Auch Sie müssen eine Rückkehr erhalten; Sie If-statement killen die Standardrückgabe. Es ist wichtig, wenn Ihre if-statement fehlschlägt.

vielleicht funktioniert das, aber nicht getestet, von Grund auf neu schreiben.

 add_filter( 'body_class', 'section_id_class' ); // add classes to body based on custom taxonomy ('sections') // examples: section-about-us, section-start, section-nyc function section_id_class( $classes ) { global $post; $section_terms = get_the_terms( $post->ID, 'section' ); if ( $section_terms && ! is_wp_error( $section_terms ) ) { foreach ($section_terms as $term) { $classes[] = 'section-' . $term->slug; } } return $classes; } 

Es ist normal, dass Sie Fehler für Seiten erhalten, die nicht mit dem Abschnitt verknüpft sind. Stellen Sie sicher, dass Sie auch ‘$ classes’ zurückgeben, wenn Ihre ‘if-statement’ fehlschlägt.

Mit anderen Worten, stellen Sie sicher, dass Sie hier ein anderes hinzufügen.

 // add classes to body based on custom taxonomy ('sections') // examples: section-about-us, section-start, section-nyc function section_id_class($classes) { global $post; $section_terms = get_the_terms($post->ID, 'section'); if ($section_terms && !is_wp_error($section_terms)) { $section_name = array(); foreach ($section_terms as $term) { $classes[] = 'section-' . $term->slug; } else { $classes = 'default-class'; } return $classes; } } add_filter('body_class', 'section_id_class'); 

etwas wie das