Archiv 2010 nach Kategorie aufteilen

  • Hallo zusammen,

    ich habe leider ein Problem bei dem ich nicht mehr weiter weiß, da mir weder Google noch die SuFu weiterhelfen konnten:

    Ich würde auf meiner Internetseite gerne das Archiv nach Kategorien aufteilen... also das ich für die Kategorie "News" jeweils die Jahre 2010, 2009,... aufrufen kann und bspw. für die Kategorie "Galerien" auch die Jahre 2010, 2009,...

    Wie ich das Archiv für ein Jahr aufrufen weiß ich (url.de/2010/), nur da sind ja jetzt alle Beiträge des Jahre 2010 drin... wie kann ich das Filtern, sodass da nur die Beiträge bspw. der Kategorie "News" angezeigt werden?

    Für ein paar hilfreiche Tipps wäre ich sehr dankbar!

    Vielen Dank schonmal im Voraus.. und noch ein schönes Wochenende,;)

    Johny

    • 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

  • Einen fertig eingebauten Weg gibt es dafür nicht, aber man könnte es sicher irgendwie selber basteln. Bin mir da mit den Details aber gerade auch nicht so sicher. Ich denke, Du könntest das auf der category.php des Themes aufsetzen (aus der archive.php erstellen falls nicht vorhanden). Dort müsstest Du dann der Query immer noch ein Jahr mitgeben. Falls keines in der URL steckt dann das aktuelle.

    Soweit sollte das trivial sein, schwieriger wird es sicher, das Jahr dann auch in die Seitenlinks zu bekommen, damit Seite 2, 3 etc. immer noch das richtige Jahr anzeigen. Außerdem müsstest Du selber eine Leiste mit allen verfügbaren Jahren ausgeben (vermutlich alle Jahre von aktuell bis definiertem Startjahr, ohne zu schauen, ob dafür auch Beiträge vorhanden sind).

  • Hi,

    also bis zum Update auf WP 3.0 hats mit diesem Code ganz gut funktioniert:

    PHP
    function filter_where($where = '') {
    $seite = htmlspecialchars($_SERVER["REQUEST_URI"]);
    $year = intval(substr($seite, -5, -1));
    if(empty($year)) $year = date("y", time());
    $where .= " AND post_date >= '".$year."-01-01' AND post_date <= '".$year."-12-31'";
    return $where;
    }
    add_filter('posts_where', 'filter_where');
    query_posts($query_string);
    if (have_posts()) : while (have_posts()) : the_post();

    Bei den Permalinks hatte ich folgende Benutzerdefinierte Struktur eingestellt:
    /%category%/%year%/%postname%/%post_id%/

    So war es bisher möglich über folgende Domain die Jahresaufteilung herbeizuführen:
    domain.de/news/2009/

    Leider funktioniert dies seit dem Update auf WP 3.0 nichtmehr, da mir bei der Eingabe dieser (eben genannten) Domain Wordpress sofort auf folgende Domain springt (ohne Jahr hinten dran und mit "category"):
    domain.de/category/news/

    Hat jemand einen guten Rat für mich? - Ich weiß nämlich partout nicht mehr weiter...

    Herzlichen Dank!

    Gruß
    Johny

  • Klappt es denn mit domain.de/category/news/2009/?! Das "category" kannst Du ja im Backend einstellen, ggf. auch auf etwas wie "archiv" oder so.Wo hast Du diesen Code denn eingesetzt? In der category.php? Du solltest dabei auch noch prüfen, dass das, was Du aus der URL parst, auch wirklich eine Zahl ist und andernfalls ebenfalls das aktuelle Jahr nehmen. Dann wären die Kategorieseiten immer jahresbasiert, ob es in der URL steht oder nicht. Falls Dich doppelter Content interessiert, könnte man vom Archiv ohne Jahreszahl auch auf eines mit der aktuellen weiterleiten.

    Auch dann sehe ich aber noch nicht, wie Du die Jahreszahl in die Links zu weiteren Seiten bekommst. Das braucht doch noch mal Extra-Code, oder?

  • Klappt es denn mit domain.de/category/news/2009/?! Das "category" kannst Du ja im Backend einstellen, ggf. auch auf etwas wie "archiv" oder so.Wo hast Du diesen Code denn eingesetzt? In der category.php? Du solltest dabei auch noch prüfen, dass das, was Du aus der URL parst, auch wirklich eine Zahl ist und andernfalls ebenfalls das aktuelle Jahr nehmen. Dann wären die Kategorieseiten immer jahresbasiert, ob es in der URL steht oder nicht. Falls Dich doppelter Content interessiert, könnte man vom Archiv ohne Jahreszahl auch auf eines mit der aktuellen weiterleiten.

    Auch dann sehe ich aber noch nicht, wie Du die Jahreszahl in die Links zu weiteren Seiten bekommst. Das braucht doch noch mal Extra-Code, oder?

    Hi,
    danke für die Antwort! - Ne, leider klappts auch mit deiner URL Variante nicht. Die Kategorie Basis hätte ich am liebsten ganz weg, deswegen hab ich auch das Feld in den Einstellungen ganz leer gelassen, allerdings stellt er dadurch den standartwert "category" rein...
    Weitere Seiten gibts bei mir nicht, da sich meine Einträge pro Jahr jeweils auf ca 20 beschränken, somit habe ich das Problem garnicht.

    Also im Prinzip würde ich das mit der Jahresaufteilung hin bekommen, die Frage ist nur, wie sage ich Wordpress nun welches Jahr ich brauch?... ich meine ein GET Anhang wie url.de/news/?jahr=2009 würde zwar funktionieren, wär allerdings alles andere als professionell gelöst :(

    Gruß
    Johannes

  • Wenn WP sich weigert, die URL mit dem Jahr am Ende anzunehmen, weiß ich auch nicht so recht. Als Query-Parameter kann man es natürlich machen, siehe z.B. http://www.webopius.com/content/137/us…rs-in-wordpress

    Ansonsten müsste man vielleicht mal in WPs Quellcode schauen, was da genau passiert und ob man das auch über irgendeinen Filter beeinflussen kann. Das wäre im Prinzip der Code, der aus der URL die Query-Parameter parst. Ich nehme aber an, dass das etwas komplizierter wird...

  • Mist. Durch ein Update wurde mein oben beschriebenes Problem damals gelöst.

    Beim aktuellen Update habe ich genau das gleiche Problem wie oben wieder... kann mir jemand helfen woran das liegt? :(

    Gruß
    Johny

Jetzt mitmachen!

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