get_the_category

  • Hallo Zusammen,

    mittels diesem Code...

    PHP
    <?php
    $category = get_the_category(); 
    echo $category[0]->cat_ID;
    ?>


    ...wird die Category-ID der ersten Kategorie des Posts ausgegeben.

    Ich bin mir auch nicht sicher, ob get_the_category die Richtige Funktion für mein Vorhaben ist.

    Wie muss ich das Code-Schnipsel verändern, so dass nur die Kategorien mit der ID 183 und der ID 184 berücksichtigt werden? D.h. wenn sich der Post in der Kategorie mit der ID 183 befindet wird "183" ausgegeben, wenn sich der Post in der Kategorie mit der ID 184 befindet wird "184" ausgegeben - ansonsten wird nichts ausgegeben.

    Ich habe schon versucht die anderen Kategorien mittels exclude unberücksichtigt zu lassen... klappt aber nicht?!

    Danke schon mal für eure Hilfe,
    greez

    • 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

  • Da würde ich einen Test vorschlagen, ob der Beitrag in der Kategorie ist oder nicht. So á la:

    PHP
    if (in_category(183)) {
      // category 183
    } else if (in_category(184)) {
      // category 184
    } else {
      // other category
    }

    Das ist jetzt mal nur improvisiert, ich hoffe, ich habe die Funktion richtig rausgefischt. Das wäre der Aufruf innerhalb des Loops oder auf einer Singleseite. Ansonsten müsstest Du den gewünschten Beitrag als zweites Argument mitgeben.

  • Super, jetzt bin ich zwar auf einer anderen Baustelle - habe aber ein ähnliches Problem:

    Ich möchte, dass das Datum eines Eintrages nur dann angezeigt wird, wenn sich dieser in Kategorie 1 befindet.

    Das hier

    PHP
    <abbr title="<?php the_time('d. F Y'); ?>"><?php unset($previousday); printf(__('%1$s – %2$s'), the_date('', '', '', false), get_the_time()) ?></abbr>

    soll also nur angezeigt werden, wenn

    PHP
    <?php
    if (in_category(1)) {
      echo "das Datum";
    } else {
      // nichts anzeigen
    }  
    ?>

    erfüllt ist.

    Leider funktioniert das hier nicht

    PHP
    <?php if (in_category(1)) {
      echo "<abbr title='". the_time('d. F Y'); ."'>". unset($previousday); printf(__('%1$s – %2$s'), the_date('', '', '', false), get_the_time()) ."</abbr>";
    } else {
      // nichts anzeigen
    }  
    ?>

    und ich bekomme die folgende Fehlermeldung

    Code
    [B]Parse error[/B]:  syntax error, unexpected '.' in...

    Leider verstehe ich nicht, wieso der Fehler auftaucht.
    Kann mir jemand weiterhelfen?

    Danke schon mal,
    greez

  • Probier es damit:

    PHP
    <?php if (in_category(1)) {
      echo "<abbr title='". the_time('d. F Y') ."'>". printf(__('%1$s – %2$s'), the_date('', '', '', false), get_the_time()) ."</abbr>";
      unset($previousday);
    } else {
      // nichts anzeigen
    }
    ?>

    Da war ein Semikolon mitten drin, das hat gestört. Und das unset hat mitten ind er String-Verknüpfung auch nichts zu suchen, denke ich. ;-)

Jetzt mitmachen!

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