Suchen Sie nach einer Möglichkeit, eine benutzerdefinierte Body-Klasse für bestimmte Seiten hinzuzufügen? Es gibt wahrscheinlich ein Plugin dafür, aber wir haben einen schnellen Code-Schnipsel erstellt, den Sie verwenden können, um eine benutzerdefinierte Body-Klasse für bestimmte Seiten in WordPress hinzuzufügen.
Anweisungen:
Sie müssen diesen Code nur zur functions.php-Datei Ihres Themes oder in ein websitespezifisches Plugin einfügen:
add_filter( 'body_class', 'my_neat_body_class');
function my_neat_body_class( $classes ) {
if ( is_page(7) || is_category(5) || is_tag('neat') )
$classes[] = 'neat-stuff';
return $classes;
}
Fügen Sie diesen Code-Schnipsel zur header.php-Datei Ihres WordPress-Themes hinzu, um Ihr Standard-HTML-Body-Tag zu ersetzen.
<body <?php body_class(); ?>>
Hinweis: Wenn Sie zum ersten Mal Code-Schnipsel in WordPress hinzufügen, lesen Sie bitte unseren Leitfaden, wie Sie Code-Schnipsel richtig in WordPress hinzufügen, damit Sie Ihre Website nicht versehentlich beschädigen.
Wenn Ihnen dieser Code-Schnipsel gefallen hat, ziehen Sie bitte in Betracht, unsere anderen Artikel auf der Website zu lesen, wie zum Beispiel: 27 beste WordPress-Business-Themes und 7 beste WordPress-DSGVO-Plugins.
Ist etwas Ähnliches möglich, aber für eine #ID? Ich möchte keine Klasse .id
Sie könnten immer noch die .page-id-Klasse verwenden: https://developer.wordpress.org/reference/functions/body_class/
Das gesagt, für tatsächliche IDs könnten Sie dem Template-Datei selbst eine ID hinzufügen und bedingte Anweisungen verwenden, um zu steuern, wann sie angezeigt wird.
Großartig! Hat mir wirklich geholfen.
Wo kann ich die Klasse hinzufügen, nachdem die obigen Schritte abgeschlossen sind?
Ändern Sie die Klasse im Code 'neat-stuff' in das, was Sie möchten. Sie könnten sogar
mehrere Klassen hinzufügen, falls erforderlich.
Ich möchte für jede Seite eine andere ID / Klasse ... wie weise ich sie einer bestimmten Seite zu?
Dieser Schnipsel ist nicht das, was Sie brauchen, er fügt nur eine einzelne Klasse hinzu
„is_page(7) || is_category(5) || is_tag(‘neat’)
Eine Seite mit der ID 7 oder die Kategorie 5 oder eine Seite mit dem Tag 'neat'. Ich denke, was besser zu Ihren Bedürfnissen passen würde, ist Folgendes.
http://wpsnipp.com/index.php/functions-php/add-parent-page-slug-to-body_class/
Dies fügt den Seiten-Slug als Klasse für die Seite mit dem Präfix parent-{page_slug} hinzu. Abgesehen davon, dass dieser Schnipsel zu functions.php hinzugefügt wird, muss nichts weiter getan werden. Schauen Sie sich auch dieses Suchergebnis für weitere Schnipsel im Zusammenhang mit body_class an: http://wpsnipp.com/?s=body_class
Ich bin sicher, Sie können ein paar nützliche finden.
Danke!
Funktioniert fehlerfrei für mich, gute Arbeit!
Vielen Dank dafür, sehr geschätzt!
Danke dafür, ich wollte einen kürzeren Body-Klassennamen für eine benutzerdefinierte Seiten-Vorlage, die is_page_template ('template-name.php') verwendet, und das hat perfekt funktioniert.
kann dies mit dem anderen Body-Klassen-Snippet kombiniert werden, sodass, wenn die Seiten nicht angegeben sind, sie standardmäßig ihre eigene Seite als Klasse haben?
Sollte einfach gehen
if ( is_page(7) || is_category(5) || is_tag(‘neat’) ){ $classes[] = ‘neat-stuff’; }else{ $classes[] = ‘other-class’;
}
Gibt es etwas, das Sie tun müssen, nachdem Sie die Klasse hinzugefügt haben? Ich sehe keine Möglichkeit, eine benutzerdefinierte Klasse für eine Seite hinzuzufügen...
Hallo Trevor,
Ja, Sie müssen die body_class(); Funktion innerhalb des body-Tags hinzufügen. Ich habe den Ausschnitt zur Vermeidung von Verwirrung aktualisiert.
Sehr praktisch. Kann etwas Ähnliches über die Elternseite gemacht werden?
Sicher, Sie könnten so etwas tun, aber wenn Ihre Seiten nur eine einzige Elternseite haben, fügt body_class() bereits die Klasse „page-parent“ zum Body hinzu. Dies ist nur ein Problem, wenn Sie viele Unterseiten haben, da jede Unterseite auch eine Elternseite sein kann. Was genau möchten Sie tun?
Das ist ein sehr sauberer Ausschnitt für benutzerdefinierte Seitenlayouts – großartig!
Cool, freut mich, dass es Ihnen gefällt!