wenn kategorie leer, dann...

  • hi, ich bin recht neu im wörter drücken. nun möchte ich in meiner index zwei dinge realisieren. bei einer suche über google und über die suche im forum hab ich leider nichts gefunden.

    1. es soll auf der startseite nur eine bestimmte kategorie angezeigt werden.
    2. ich möchte auch das in der kategorieliste die einzig auf der startseite angezeigte kategorie mit einer speziellen css-klasse versehen wird, um diese hervorheben zu können. der aufruf hierzu steht oberhalb der post darstellung (<?php wp_list_categories('title_li=' . __('<span class="test">Categories:</span>')); ?>)

    mein versuch 1. wie folgt zu realisieren, blieb leider erfolglos und aus anderen suchergebnissen hier im forum werde ich nicht schlau bzw. unterbinden diese auf folgeseiten oder anderen kategorien die korrekte darstellung.

    vielleicht hat ja jemand eine idee. würde mich freuen. ach, es wirklich nur übers theme ohne plugins o. ä. zu lösen ist mein bestreben.

    mit dank und gruss
    anti

    mein ansatz:

    PHP
    <?php if (!get_the_category()) { query_posts('cat=1'); } ?>
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>


    2. kann man vielleicht erst lösen, wenn 1. gelöst wurde.

    • 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

  • 1. es soll auf der startseite nur eine bestimmte kategorie angezeigt werden.

    PHP
    <?php if (is_front_page()) { query_posts('cat=1'); } ?>


    Conditional Tags WordPress Codex

    Zitat

    2. ich möchte auch das in der kategorieliste die einzig auf der startseite angezeigte kategorie mit einer speziellen css-klasse versehen wird, um diese hervorheben zu können. der aufruf hierzu steht oberhalb der post darstellung (<?php wp_list_categories('title_li=' . __('<span class="test">Categories:</span>')); ?>)

    PHP
    <?php
     $category = get_the_category();
     if($category[0]->term_ID == 1) echo " class='frontpagecat'";
    ?>
    Zitat

    ach, es wirklich nur übers theme ohne plugins o. ä. zu lösen ist mein bestreben.


    Kleine Sachen können ins Template, größere solltest du in die functions.php auslagern. Theme-unabhängige Sachen packt man in ein Plugin. ;-)

  • super, danke. 1. wurde super duper gelöst. zu 2. hab ich noch mal eine frage, dein ansatz hat nichts mit wp_list_categories() zu tun, oder? mit deinem ansatz müsse ich mir die ausgabe selber zusammenbauen, oder verstehe ich das falsch?

    tausend dank und nicht minder viele grüße
    anti

  • Sorry, da hab ich dich falsch verstanden. Aber wp_list_categories() gibt dem aktiven Menüpunkt bereits eine Klasse ".current_cat_item". Außerdem ist jeder Eintrag über die Kategorie-ID ansprechbar: ".cat_item_123".

  • leider wird, wenn ich wp_list_categories() aufrufe, bevor ich if (is_front_page()) { query_posts('cat=1'); ausführe, der aktive menüpunkt nicht mit der bekannten klasse versehen, da die wp-engine ja davon ausgeht, dass auf der front page keine kategorie ausgewählt ist (vermute ich zumindest).

    deswegen fiel mir, inspiriert durch dich, gerade folgender aberwitziger workaround ein:
    index.php:

    PHP
    <?php if (is_front_page()) { echo '<div id="front_page_wrap">'; } ?>
    <div id="menu1">
      <ul>
        <?php wp_list_categories('title_li='); ?>
      </ul>
    </div>
    <?php if (is_front_page()) { echo '</div>'; } ?>

    css:
    #front_page_wrap #menu1 .cat-item-1 {
    /* styles */
    }

    irgendwie trashig, aber funktioniert.

    vielen dank, ohne deine hilfe wär ich nicht drauf gekommen.

    Einmal editiert, zuletzt von antiheld2000 (4. Juni 2009 um 21:56)

  • Hallo zusammen,

    um kein neues Thema zu eröffnen, schreibe ich es einfach hier mit rein, da es in gewisser Weise gut passt.

    Ich bräuchte eine kurze Lösung, wie ich eine "If - Else" Schleife bauen kann. Das ganze soll wie folgt funktionieren:

    WENN der Beitrag eine Kategorie hat, DANN zeige ihn normal an (Datum, Text etc.) ANDERNFALLS zeige folgendes an (Anderer Text).

    Was zwischen den Bereichen als Text, Daten etc. steht ist kein Problem. Mir geht es nur um den Code für die Überprüfung einer Kategorie.

    Schönen Gruß!

  • Dankeschön! Das hat schonmal geholfen.
    Allerdings suche ich noch die Funktion, die ich eingeben muss, wenn ich keine Kategorie habe. Mit bestehenden Kategorien klappt alles wunderbar, nur brauche ich eine Lösung, bei der etwas unterschiedliches angezeigt wird, wenn sie keine Kategorien haben. Das wäre deutlich sinnvoller, da ja immer wieder neue Kategorien hinzukommen und dann entsprechend im Template geändert werden müssten.

    Hier der Code:

    PHP
    <?php if (in_category( 'allgemein' )): ?>
      <p>Nix drin!</p>
    <?php else: ?>
      <section class="container">
    etc..
    <?php endif; ?>
  • PHP
    if (!in_category()):

    Das ! verneint die Abfrage.

    Das Geheimnis des Könnens liegt im Wollen!
    [size=12]Bitte keine Hilfegesuche per PN (auch keine "privaten" Links). Das ist ein öffentliches Forum.[/SIZE]

  • wie sieht denn Dein Query aus? Poste mal den Code (bitte über Erweitert als Code markieren).

    Das Geheimnis des Könnens liegt im Wollen!
    [size=12]Bitte keine Hilfegesuche per PN (auch keine "privaten" Links). Das ist ein öffentliches Forum.[/SIZE]

  • Das ganze betrifft das Template "single.php" in einem eigenen Theme. Hintergrund ist, dass das Portfolio automatisch Beiträge generiert. Diese haben erhalten allerdings keine Kategorie (Plugin), weshalb sie auch anders aussehen sollen, als normale Blog-Beiträge.

  • Pack mal die Abfrage ob in_category mit in den Loop.

    Das Geheimnis des Könnens liegt im Wollen!
    [size=12]Bitte keine Hilfegesuche per PN (auch keine "privaten" Links). Das ist ein öffentliches Forum.[/SIZE]

  • Pack mal die Abfrage ob in_category mit in den Loop.

    Was meinst du genau?
    Oben steht doch schon

    PHP
    <?php if (in_category('')):  ?>

    . Wenn ich hier nun 'allgemein' eingebe, dann reagiert er auf alle Beiträge der Kategorie "Allgemein". Allerdings soll er auf alle Beiträge eingehen, die keine Kategorie haben.

  • Dann verneine mit !in_category

    Das Geheimnis des Könnens liegt im Wollen!
    [size=12]Bitte keine Hilfegesuche per PN (auch keine "privaten" Links). Das ist ein öffentliches Forum.[/SIZE]

  • imho gibt es keine Beiträge die keiner Kategorie zugeordnet sind. Jeder Beitrag wird mindestens der Standard-Kategorie zugeordnet, die im Backend (/wp-admin/options-writing.php) eingestellt ist.

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • Danke für die Hilfe! Hat nun nach einigem Hin und Her soweit geklappt, dass ich zumindest die Kategorien unterschiedlich darstellen kann.

Jetzt mitmachen!

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