dynamicinternet Webdesign

Das Blog

Themen, Tutorials sowie Tipps & Tricks über Webdesign, (X)HTML und CSS, Programmierung, WordPress und was uns sonst noch bewegt.

RSS abonnieren

WordPress 2.8 body_class, automatic_feed_links

body_class

In der kommenden Version 2.8 von WordPress wird es einen neuen Template Tag geben, body_class. Diese Funktion gibt dem body Element verschiedene Klassen, die einem die Möglichkeit geben, per CSS darauf zuzugreifen.

<body <?php body_class(); ?>>

Wie schon bei der Kommentar-Ausgabe und bei den Postklassen fahren die WordPress-Entwickler alles auf, was die Datenbank hergibt. Hier ein Beispiel beim Aufruf eines Seitentemplates “tutorial.php”:

<body class="page-template page-template-tutorial-php logged-in">

Insgesamt stehen uns folgende Klassen zur Verfügung:

  • rtl
  • home
  • blog
  • archive
  • date
  • search
  • paged
  • attachment
  • error404
  • single postid-(id)
  • attachmentid-(id)
  • attachment-(mime-type)
  • author
  • author-(user_nicename)
  • category
  • category-(slug)
  • tag
  • tag-(slug)
  • page-parent
  • page-child parent-pageid-(id)
  • page-template page-template-(template Dateiname)
  • search-results
  • search-no-results
  • logged-in
  • paged-(seitenzahl)
  • single-paged-(seitenzahl)
  • page-paged-(seitenzahl)
  • category-paged-(seitenzahl)
  • tag-paged-(seitenzahl)
  • date-paged-(seitenzahl)
  • author-paged-(seitenzahl)
  • search-paged-(seitenzahl)

automatic_feed_links

Diese Funtion befindet sich zur Zeit in der function.php des Default-Theme. automatic_feed_links() ermöglicht die automatische Ausgabe der Feedlinks im head-Bereich des Dokuments. Per defalut ist die Funktion aktiv, man kann sie auch abschalten, dann werden keine Feed-Links ausgegeben:

automatic_feed_links(false);//keine Ausgabe
automatic_feed_links();//Ausgabe

Ausgegeben werden der Feed, der Kommentar-Feed und zusätzlich der Beitrag-Kommentar-Feed, wenn man auf einer Einzelansicht ist.

WordPress 2.8 Feed Anzeige

18 Kommentare
  1. Jared sagt:

    wtf?
    was soll ich mit sovielen Klassen im Body? Ich find die Verwendung einer ID oder einer Klasse im Body sowieso etwas “mies” und musste es bisher auch erstmal einmal verwenden.

    Fluch oder Segen?! Könnte man auch hier fragen…

  2. Micha sagt:

    Generell mies würde ich nicht sagen, man braucht das schon manchmal. Nur diese sinnlose Masse finde ich bescheuert. Was will ich mit den ganzen paged-Zeugs?
    Obwohl bei search-no-results fallen mir ein Haufen witziger Sachen ein ;)

  3. Jared sagt:

    Bestimmt kann man mit der ein oder anderen Klasse was witziges und sinnvolles anstellen aber ich finde es sehr verwirrend wenn man Body komplett zukleistert.

    Ist es nicht effektiver wenn man einen Kompromiss zwischen “CSS Include” mithilfe Custom Fields UND einigen wenigen Formatierungen der Seiten mithilfe der Body Klasse findet?

    Wenn ich eine komplette Seite verändern will, binde ich eine extra CSS NUR auf der Seite ein – das macht meine Haupt-CSS schlanker ;-)

  4. Micha sagt:

    Mit dem zukleistern gebe ich dir vollkommen Recht.
    Wenn man es selbst anwendet, egal in welcher Form, weiß man (meistens), was man tut und bekommt es nicht aufgezwungen bzw. geht sparsam damit um.

  5. Jared sagt:

    Das stimmt :-)
    Ich hab da mehr an freie Themes gedacht die darauf aufbauen werden und bei denen dann die CSS mehr 40kb groß sein wird.

    Nicht jeder macht sich soviel Arbeit wie du und baut einen Compressor ein!

  6. Micha sagt:

    Kommentar beim selben Artikel auf wpengineer.com:

    The upcoming new version of Thematic Framework For WordPress will provide classes based on the browser, the version of the browser and the os where the page is running.
    I think this is really helpful for styling..

    Dann bau ich doch gleich noch eine Klasse mit der IP des Users ein…

    Lieber Gott, lass es Hirn regnen!

  7. Jared sagt:

    ^^ ich wusste schon warum ich mich nach einer 3minütigen Durchsicht des besagten “Frameworks” dann doch wieder für das Basic Theme vom Frank entschieden habe!!

  8. Kretzschmar sagt:

    Die Funktion body_class() ist sinnvoll. Keine CSS Datei wird dadurch automatisch größer.

    Ein Theme KANN so z.B. das Headerbild ganz einfach entsprechend der gewählten Seite anpassen.

    Darüber hinaus ist es ebenfalls sinnvoll, dass nicht jedes Theme eigene Klassennamen und IDs nutzt. So ist es leichter, das eigene Design auf ein anderes Themeframework zu übertragen.

  9. Micha sagt:

    @Kretschmar:

    Das CSS wird dadurch nicht größer, wohl aber der HTML Quelltext. Was mich stört, ist das einfach draufgeblasen wird, ohne nachzudenken, ebenso wie bei post_class() und den Kommentaren.
    Wenn ich en Theme erstelle, dann nutze ich diese technik auch, wenn es erforderlich ist, nur dann komm ich im body mit einer Klasse auch und brauche nicht so einen Schwachsinn wie logged-in oder der ganze paged- Kram.

  10. Kretzschmar sagt:

    Zu jedem Theme kann man mittlerweile eigene Child-Themes erstellen, die automatisch von Verbesserungen des Basis-Themes profitieren. Hier sehe ich die vielen Klassen als echte Bereicherung, da nur in wirklich seltenen Ausnahmefällen Tempalte-Dateien verändert werden müssen.

    Außerdem sind die Klassennamen jetzt standardisiert, sodass sich eigene Änderungen auch auf andere Themes leicht übertragen lassen und nur wenige Änderungen am Styleheet erfordern.

    Für die meisten Nutzer macht der aufgebähte HTML-Code keinen Unterschied, da sie sich nie den Quell-Code anschauen es den Seitenaufbau praktisch nicht beeinträchtigt.

    Das Gute an den neuen Funktionen ist aber auch, dass es Funktionen sind. Wenn ein Theme-Autor sie nicht nutzen möchte, kann er sie weglassen.

  11. Micha sagt:

    Das Gute an den neuen Funktionen ist aber auch, dass es Funktionen sind. Wenn ein Theme-Autor sie nicht nutzen möchte, kann er sie weglassen

    Das ist wohl war.

  12. Christoph sagt:

    Hallo, eine Frage habe ich dazu. Ich spiele gerade mit WordPress und Yaml rum und habe jetzt folgendes Problem:
    body class=”page page-id-2 logged-in”
    würde gern die Funktion body_class nutzen, aber Yaml nutzt class=”page in den Core-Dateien und die wollte ich nicht bearbeiten. Kann ich das Problem irgendwie umgehen?

  13. Micha sagt:

    Christoph: Da gibt es nur 2 Möglichkeiten:
    1. Du benutzt body_class() nicht
    2. Du benennst den Container .page um und kopierst dir alles aus den YAML Core Dateien, was mit .page zu tun hat, in ein eigenes Sytlesheet und benennst ebenfalls alles um. IE Patch nicht vergessen.

    Das ist alles nicht wirklich schön, aber so ist das nun malmit Content Management Systemen.

  14. Chris Kojak sagt:

    Was ich mich immer noch frage: Wie funktioniert das ganze? Denn der user_nicename des Autors will ums Verrecken nicht erscheinen.

  15. Micha sagt:

    Chris: Zeile 481 wp-includes/post-template.php:

    elseif ( is_archive() ) {
    if ( is_author() ) {
    $author = $wp_query->get_queried_object();
    $classes[] = 'author';
    $classes[] = 'author-' . sanitize_html_class($author->user_nicename , $author->user_id);

    Also nur, wenn es eine author Seite ist.

  16. Chris Kojak sagt:

    Ah, ok…. Dann hab ich das anscheinend falsch verstanden. Denn ich dachte, dass setzt den Autorennamen der Seite ein, der dieser Seite zugeteilt ist.

    Ich wollte nämlich den Body über verschiedene CSSs vom Autor abhängig machen.

    Dann funktioniert das leider nicht so, wie ich mir das vorgestellt habe.

  17. Chris Kojak sagt:

    Trotzdem danke für deine Mühe, Micha.

  18. Gerald sagt:

    Dieser Artikel bezieht sich ja auf die Version 2.8 – ich hab aber noch Blogs, die mit dieser Engine von WP laufen und da bin ich froh. dass ich für dieses Problem jetzt mal eine Lösung gefunden hab. Ist nämlich gar nicht so einfach, zu älteren WP Sachen was gutes im Netz zu finden!

7 Pingbacks
  1. WordPress Theme in Abhängigkeit wechseln - bueltge.de [by:ltge.de]
  2. WordPress 2.8 kommt im April 2008 - Template, Nutzung, Scripte, WordPress, Sicht, SimplePie - WordPress Deutschland Blog
  3. dkret3 2.8 - dieKretzschmars
  4. Wordpress 2.8? | // TBDTTT
  5. Wordpress 2.8 Download | Wordpress Design
  6. Wordpress 2.8 verfügbar » zauberpage.de
  7. "Navigation Highlighting" in WordPress mit der neuen body_class()-Funktion | Emanuel Kluge
Einen Kommentar schreiben