single.php kennt keine category ?

  • hallo zusammen,

    kaum ist man einen schritt weiter, türmt sich die nächste mauer auf :)

    im forum habe ich gelesen, dass man je nach categorie etwas laden kann. das funktioniert auch sehr gut, nur bei der einzelnen artikelseite, also bei der single.php nützt diese abfrage nichts. hat hier bitte jemand rat, wie diese single-seite auch wissen könnte, in welcher kategorie sie sich befindet.

    zum besseren verständnis: ich habe eine dreisprachige seite, das wordpress soll für die news dienen. jede sprache führe ich also in einer eigenen kategorie. bei den archive-links kommt man jedoch immer ZU ALLEN beiträgen, also nicht auf die kategorie bezogen. nun habe ich den templates hinzugefügt, dass wenn categorie deutsch, die deutsche sidebar geladen wird, die wiederum nur die deutschen artikel im archiv führt
    $temp_query = $wp_query; query_posts('showposts=100&cat=[COLOR=Red]8'[/COLOR]);

    das funktioniert bis hierher hervorragend: deutsche kategorie, deutsche sidebar, deutsches archiv.

    nur wenn ich dann innerhalb dieser sidebar auf den archivartikel klicke, erhalte ich die single.php, allerdings nützt die abfrage nach der category hier nichts - die erkennt er nicht und somit gehen die archive-links in der sidebar verloren!

    hat hier jemand rat, bitteschön? :|

    liebe grüße
    monika

    ooooooooooh ... ich sehe gerade, ich bin im falschen forum - ich wollte eigentlich in die "konfiguration" posten - total sorry, kann man das verschieben, bitte?

    Einmal editiert, zuletzt von omshanti (9. Oktober 2007 um 20:16)

    • 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 du wissen willst in welcher Kategorie ein Beitrag ist dann nutze doch einfach the_category() bzw. get_the_category() zur Weiterverarbeitung in PHP.

    "Eine gut gestellte Frage ist schon halb beantwortet."

  • hallo jottlieb,

    danke für deine antwort.

    mit <?php get_the_category(); ?> habe ich es probiert, das funktioniert aber nicht.

    the_category() ... mit dem befehl, erhalte ich nur die kategorie gelistet, die brauche ich ja aber nicht gelistet, sondern je nach kategorie eine sidebar geladen.

    liebe grüße
    monika

  • Zitat

    <?php get_the_category(); ?> habe ich es probiert, das funktioniert aber nicht.


    Doch funktioniert.

    Zitat

    die brauche ich ja aber nicht gelistet, sondern je nach kategorie eine sidebar geladen.


    Dann machen wir eben eine Abfrage. Dafür kann man übrigens auch in_category nutzen.

    PHP
    <?php if (in_category('1')) { ?>
    Code der ausgeführt werden soll
    <?php } ?>

    "Eine gut gestellte Frage ist schon halb beantwortet."

  • ... moment, jottlieb - DAS schaut natürlich dann ganz supi aus :) ... aber einen kleinen haken hat das noch, moment .... ich meld mich gleich nochmal, muss mich zuerst orientieren und sortieren ...

  • so ... jetzt weiss, ich was der knackpunkt ist:

    teilweise erhalte ich jetzt zwei sidebars :oops:, weil einige artikel sowohl in der ösi- wie auch in der deutschen-kategorie gelistet sind.

    der zweite knackpunkt ist, dass ich in meiner header die definition drinnen habe:
    if ( is_category('de') ) {
    $sprache = de;
    echo " <img src=\"$images/logo.jpg\"/>"; //logo
    }

    damit funzt auf allen seiten, das logo inklusive der (nachfolgenden) navigation, bei der die variable $sprache weiter gegeben wird tadellos. nur eben nicht auf der single.php.

    nun habe ich in der single.php nicht nur zwei sidebars, sondern trotz zusätzlicher variablen-festlegung funktioniert das mit der sprache nicht:

    <?php the_category(); ?>
    <?php if (in_category('6')) {
    $sprache = "de";
    include ("sidebar.php");
    } ?>
    <?php if (in_category('7')) {
    $sprache = "at";
    include ("sidebar_at.php");
    } ?>
    <?php if (in_category('8')) {
    $sprache = "en";
    include ("sidebar_en.php");
    } ?>


    mir raucht schon der kopf von dem labyrinth :) ... aber jetzt bin ich schon so weit gekommen, nun möcht ich auch nicht aufgeben :|

    liebe grüße
    monika

  • Suchst du vielleicht elseif? Oder switch?

  • hallo marx,

    das hat mit einer kleinen korrektur (elseif if war zu viel) jetzt super funktioniert mit der sidebar!!! :) d.h. es lädt immer nur die richtige. [COLOR=Magenta]dankeschön![/COLOR]

    was allerdings noch immer nicht funktioniert, ist das mit der sprache. die brauche ich ja aber unbedingt für die navigation. d.h. die header.php bekommt nicht die information (über die kategorie), die sie braucht :?

    liebe grüße
    monika

  • Der Header ist ja leider außerhalb des Loops, deshalb kann man mit den Standardfunktionen auch nicht bereits im Header abfragen in welcher Kategorie sich der Beitrag befindet, den man gerade anzeigt.

    (Soweit ich weiß)

    "Eine gut gestellte Frage ist schon halb beantwortet."

  • manchmal muss man nur darüber schlafen und davon träumen, dass es klappt :idea:

    die lösung hat 4 buchstaben und lautet $cat. das funktioniert auch im header sehr gut.

    diese variable gibt man dem link zum permanent_link einfach mit, dann hat die single-seite auch ihre kategorie gefunden.

    <a href="<?php the_permalink(); ?>[COLOR=Red]?cat=6[/COLOR]" rel="bookmark" title="Permanent Link to &ldquo;<?php the_title(); ?>&rdquo;">

    da sich meine php-kenntnisse noch im anfängerstadium befinden, könnte vielleicht noch jemand für mich und wie marX so schön sagt: für die nachwelt erklären, wie man das ?cat=6 automatisch generieren könnte mit $cat ... also so ähnlich wie
    <a href="<?php the_permalink(); ?>[COLOR=Red]?cat=$cat[/COLOR]" rel="bookmark" title="Permanent Link to &ldquo;<?php the_title(); ?>&rdquo;">

    im header geht das tadellos mit dem $cat, fehlt da oben jetzt womöglich nur irgendwo eine klammer oder andere zeichen, dann bräuchte man sogar nur eine einzige sidebar.

    vielleicht hat da noch mal jemand einen tipp? wär echt supi!
    liebe grüße
    monika

  • oha

    Ich bin grad dabei, ein neues Theme für mein Blog zu basteln und habe versucht, in der single.php die Kategorie des Beitrags per is_category(’…’) abzufragen. Aber über die single.php bekommt man ja nur per in_category(’…’) die richtige Angabe…

    nur gut ich hab diesen Thread hier gefunden ^^

Jetzt mitmachen!

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