Schlagwörter als Klasse im Body-Tag

  • Hallo Leute,
    Wordpress 3.8 hat ja die neue Funktion "body_class".
    Mein Ziel wäre es nun, die Schlagwörter eines Beitrags als Klasse im Body-Tag hinzuzufügen.

    z.B.

    HTML
    <body class="schlagwort1 schlagwort2 schlagwort3 single single-post postid-161 single-format-gallery logged-in admin-bar td-full-layout td_responsive das-los-der-guten-vorsaetze wpb-js-composer js-comp-ver-3.6.8 vc_responsive customize-support" itemscope="itemscope" itemtype="http://schema.org/WebPage" style="">

    Ist dies möglich? Und wenn ja, wie?

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Wenn ich es richtig verstehe, kannst Du ganz einfache eine CSS Klasse hinzufügen. Einfach in der header.php 'ein_name' für die zusätzliche CSS-Klasse einfügen.

    PHP
    <body <?php body_class('ein_name'); ?>>


    Weitere Beispiele unter:

    http://codex.wordpress.org/Function_Reference/body_class

    Doch für was möchtest Du da schlagwort1 schlagwort2 schlagwort3? Du müsstest ja dann gleich 3 neue CSS-Klassen definieren, die Du doch wohl auch in einer zusammenfassen könntest oder nicht? Sieht für mich eher nach einem Versuch für Keyword-Spam aus, der aber völlig daneben gehen würde, wenn Du da CSS Klassen als Styles aufführst, die es in keiner CSS gibt und die ohnehin nicht von Suchmaschinen, sondern von den Browsern gelesen werden.

  • Hi Melewo,

    Da hab ich mich leider nicht ganz klar ausgedrückt. Ich möchte die Schlagwörter auf den einzelnen Beiträgen auslesen --> daher dynamisch. Verwendet wird das ganze für die Homepage unseres Monatsmagazin, bei dem je Ausgabe eine andere Farbe als Hintergrund verwendet werden soll.

    Also z.B. so:

    HTML
    <body class="ausgabe-248 steiermark-liezen single-post ...">
  • Ist jetzt ungetestet und nur als möglicher Ansatz zu verstehen, doch eine ähnliche Funktion für die functions.php vom Theme entwickeln, sollte die Aufgabe erfüllen. Dazu dann in der style.css die Klassen definieren.

    PHP
    add_filter('body_class','ausgaben_nummer');
    
    
    function ausgaben_nummer($classes) {
    
    
    // Hier dann eine Funktion, die dann das jeweilige Schlagwort ausgabe-{248} ausliest.
        return $classes;
    }

    Vorher mal in der functions.php vom Theme schauen, da gibt es bestimmt schon eine Funktion. Beispiel:

    PHP
    function twentytwelve_body_class( $classes ) {
    ...
    }
    add_filter( 'body_class', 'twentytwelve_body_class' );


    Und eigentlich braucht die nur noch erweitert werden.

    Einmal editiert, zuletzt von Melewo (10. Januar 2014 um 12:58)

  • in mehr details, basiert auf dem vorschlag von Melewo

    zB


    (auch nicht getestet)
    http://codex.wordpress.org/Function_Reference/get_the_tags
    http://codex.wordpress.org/Function_Refer…sses_By_Filters

  • Thats it alchymyth!
    Genau das ist die Lösung! Danke!

    Jetzt hab ich noch eine kleine Frage:
    Ist es möglich, die Tags mit einem Bindestrich o.ä. zu verbinden?

    zum Beispiel:
    ausgabe-248[COLOR=#ff0000]-[/COLOR]steiermark-liezen

    anstatt:
    ausgabe-248 steiermark-liezen

    Denn eine CSS-Lösung gibt es ja nicht, das die Regel gilt, wenn beide Klassen "ausgabe-248 steiermark-liezen" vorhanden sind, oder?

    also blöd ausgedrückt soetwas:

    Code
    if(class=ausgabe-248 AND steiermark-liezen) --> background-color: #FDFDFD
  • Zitat

    Ist es möglich, die Tags mit einem Bindestrich o.ä. zu verbinden?

    das waere ziemlich speziell und wurde nur functionieren, wenn du sicherstellen kannst, dass nur diese zwei tags im entsprechenden artikel sind;


    code zB (wieder ungetestet):

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!