Problem mit category.php

  • Vielleicht ein ein wenig ungewöhnliches Problem ...

    In der index.php steht:

    PHP
    <?php query_posts($query_string . '&cat=54'); ?>            
    <?php if (have_posts()) :?><?php while(have_posts()) : the_post(); ?>

    Dadurch stehen alle Beiträge der Kategorie "Startseite" (Kategorie 54) auf der Startseite.

    Um nur die News (Kategorie 2) per Link aufzurufen habe ich eine category.php angelegt. Darin steht:

    PHP
    <?php query_posts($query_string . '&cat=-54,-55,-56'); ?>
    <?php if (have_posts()) :?><?php while(have_posts()) : the_post(); ?>


    Das funktioniert.

    Die Beiträge auf der Startseite sollen nun nicht den Beitrag selbst aufrufen, sondern jeweils eine Kategorie-Seite.

    Also habe ich in meine header.php ich geschrieben:

    Code
    if ( is_single( '270' ) )
    echo '<meta http-equiv="refresh" content="0; URL=http://testsite.de/?cat=55">';
    if ( is_single( '131' ) )
    echo '<meta http-equiv="refresh" content="0; URL=http://testsite.de/?cat=56">';

    Die Umleitung funktioniert, aber die category.php paßt nicht dazu. Was muß ich da reinschreiben, damit die jeweilige Umleitung im Header auch nur die jeweilige Kategorie aufruft?

    Danke für die freundlichen Hinweise.

    • 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

  • Jetzt verstehe ich nur Bahnhof. Wenn Du in der category.php diese Kategorien ausschließt, in dem Du diese -54,-55,-56 auf eine schwarze Liste setzt, was erwartest Du dann bei einem Aufruf der category.php? Es wird alles angezeigt, bis auf diese 3 Kategorien, würde ich erwarten.
    Schaue hier unter:

    Zitat

    Examples

    You can also add some more categories to the exclude-list


    http://codex.wordpress.org/Function_Reference/query_posts

  • Genau so geht es mir auch. Was muß ich denn in die category.php schreiben, damit jeweils nur die Beiträge der gewünschten Kategorie angezeigt werden? Mit der index.php werden mir derzeit alle Beiträge der 54 angezeigt, mit der aktuellen category.php alle Beiträge der 2.
    Wie kann ich mir nun alle Beiträge der 55 bzw. der 56 anzeigen lassen? Das ist mein Problem.

  • Entschuldigung - Denkfehler bei mir. Die Zeile
    php query_posts($query_string . '&cat=-54,-55,-56')
    hat natürlich nichts in der category.php zu suchen.
    Problem geklärt.

  • probier mal in der URLzeile hinter der Domain ?cat=54 einzugeben, das ist der Filter der dann die normal category.php (template) verwendet und nur die Beitrag Cat 54 anzeigt, im Individualmenü kann zb diese Kategorie dann auch als Menüpunkt hinzufügen und niemand braucht etwas im Code zu ändern, denn Wordpress bietet diese Wünsche und Funktionen bereits sehr umfangreich an.

    Wordpress weil es spass macht, besonders beim WordPress Meetup in Linz

  • probier mal in der URLzeile hinter der Domain ?cat=54 einzugeben

    Danke. Aber das habe ich in der Umleitung in der header.php ja getan. Und nachdem ich inzwischen ja die excludes aus der category.php rausgenommen habe, funktioniert alles wie gewünscht.

    Aber eine Frage habe ich dennoch. Mein Browser (FF) ist so eingestellt, daß ich Umleitungen explizit bestätigen muß. Ist es irgendwie möglich (redirect???), diese Umleitung so zu bewirken, daß der User nichts davon bemerkt? Wenn ja - bitte wie und wo,
    Danke und Gruß

  • warum willst du umleiten, die Template Dateien zeigen daten an,
    durch gezielte verwendung von daten (gefilter zb nach kategorien und sonstiges) wird immer das selbe template verwendet (bei bedarf kann dafür auch eigenes gestaltet werden) zb category-54.php dann wird bei anzeige (zb durch link, plugin) von der Kategorie diese template verwenden. http://codex.wordpress.org/Template_Hierarchy

    die Filterungen durch PHP Code macht man normal nicht im template sondern nutzt einfach Wordpress filter (links, permalink, parameter) oder per Plugins eigene Filteraufgaben.

    Wordpress weil es spass macht, besonders beim WordPress Meetup in Linz

  • Ist es irgendwie möglich (redirect???),


    Ist jetzt nicht getestet und es muss die Syntax von PHP und JavaScript beachtet werden, sollte aber eigentlich funktionieren.

    Doch noch schnell getestet, ein Semikolon war zu viel "</script>;\n";

    Einmal editiert, zuletzt von Melewo (12. Februar 2014 um 12:23)

  • Ich würde aber auch, wie von Shadow vorgeschlagen, einen anderen Weg wählen, da die Seite sich sonst mit deaktivierten JavaScript nicht mehr richtig navigieren ließe.

  • einfachste Weg ist so wie Wordpress die Menüfunktionalität im Codex hat, Codex auch wicht eigene Menüs stylen, Coden usw., die Tips aus dem HTML Grundkurs der Volkshochschule für Menüs verlinken sind Schnee von gestern

    Wordpress weil es spass macht, besonders beim WordPress Meetup in Linz

  • Shadow
    Auf der Startseite stehen alle Beiträge (nur Titel und Bild) der Kategorie "Startseite" (Kategorie 54). Ein Klick würde den einzelnen Beitrag aufrufen. Jeder Beitrag steht aber für eine Kategorie - daher soll der Klick alle Beiträge der jeweiligen anzeigen. (Faktisch so etwas wie ein Kategorie-Menü aus Beiträgen.)

    Melewo
    Danke. Funktioniert ausgezeichnet. Die Bedenken von Shadow sind sicher nicht von der Hand zu weisen - doch die User mit deaktiviertem JS sind imho sicher überschaubar.(?)
    Wenn es "einen anderen Weg" geben sollte, bin ich natürlich interessiert.

  • wenn man sich mit Wordpress anfreudet und nicht probleme sich erarbeitet (redirect, Javascript, Codeverändern in Template) dann nutzt man die Wordpress Funktionen und Filter so wie es Wordpress laut Codex auch super anbietet:
    http://www.wieser.at/wordpress/plugins/meine-home/ ist zb ein Plugin aber auch Beispielscript für Filter um zb auf der home nur eine Categorie anzuzeigen.

    ein weiteres Beispiel sind die Links die man ebenfalls mit einem Filter zb nur auf der home nur wenn ein Customfield den Kategorie namen hat, abändern kann.

    PHP
    function append_query_string($url) {
        if (is_home() && get_post_meta(get_the_ID(),'catlink',true))
                $url='/category/'.get_post_meta(get_the_ID(),'catlink',true);
            return $url;
       }
    add_filter('the_permalink', 'append_query_string');

    es geht auch darum, das du dir das ganze nicht leichter macht mit irgendwas wo eincoden, template verändern, sondern nur probleme schaffst, die dann wieder hier im Forum landen, aber dann niemand mehr helfen kann.

    nur durch diese Zwei Codeschnipsel bedarf es keinerlei veränderung in Templates oder sonstwo, und man ist auch für zukunft (Themen updates usw) abgesichert.

    Wordpress weil es spass macht, besonders beim WordPress Meetup in Linz

  • Hallo Shadow,

    sei versichert, Deine Worte treffen nicht auf taube Ohren. Um das Problem mal zu verdeutlichen habe ich ein Bild der Startseite angehängt. Auf der Startseite werden alle Beiträge nur einer Kategorie angezeigt ("Startseite"). Kein Problem. Ein Klick führt wp-gemäß auf die Gesamtansicht des Beitrags. Auch das ist i.d.R. OK.
    Die beiden markierten Grafiken sollen bei einem Klick aber die Übersichtsseite einer Kategorie anzeigen. Ich mußte also "?p=xxx" irgendwie in "?cat=xx" umwandeln. Was ich zuerst mit refresh und nun mit JS bewerkstellige. Sollte es eine bessere Möglichkeit geben ... ich bin für alles offen.

    Gruß Klaus

Jetzt mitmachen!

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