WordPress Query Quick Tipps

bueltge.de [by:ltge.de] wird von Frank Bültge geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.

Kommentare

  
  1. Den Befehl "wp_reset_query" kannte ich nicht. Werde ich bestimmt mal brauchen... Merci.

  2. Alexa sagt:

    Tausend Dank für diesen Tipp! Ich habe schon eine halbe Ewigkeit nach einem solchen Loop gesucht, um eine Kategorie als Page mit funktionierender Pagination auszugeben.

  3. Christina sagt:

    danke für den tipp - werde versuchen dies auf meiner seite umzusetzen. leider bin ich nicht zu fit für sämtliche pc geschichten - kann mir das sogar jemand umsetzen falls ich das nicht selber hinbekomme?

  4. datenkind sagt:

    Sehr schöne Tipps. Ich hab vor ’ner Weile versucht, ein, halt dich fest, Plugin für Minibeträge, also eine Art Sideblog, einzubinden. Aber hat ja alles nüscht genützt. Und die Tage hab ich wieder damit befasst und über meine eigene Blödheit geärgert, da man ja theoretischerweise alles über den Loop regeln kann. Arrr, und jetzt der Gedankensprung hierhin – perfekt! :)

  5. Ahmet Topal sagt:

    Gibt es eine Möglichkeit, unter einer Seite auch noch eine Liste von Artikeln einer Bestimmten Kategorie anzuzeigen?
    Ich habe folgendes versucht:
    <a href="" rel="bookmark" title="Permanent Link: "></a>
    Wie bei dir auf der Seite WordPress plugins?? Ich habe mehr nicht rausbekommen

    • Ja das geht, dazu muss man nur einen eigenen Loop im Template hinterlegen oder via PHP-Plugin auch im Editor der Seite.
      Einen Query wie oben beschrieben kann man dazu nutzen.
      Auch meine Plugin-Seite macht nix anderes, liest lediglich diese eine Kategorie aus.

  6. Sebastian sagt:

    spitze. das mit den meta keys im wp query habe ich genau gesucht! danke!

  7. Christian sagt:

    Kann man damit eigentlich auch nur den neuesten Beitrag ausgeben?
    ich will auf der Startseite den Titel des neusten Beitrages in h1 setzen und die Titel der anderen Beiträge in h2.

  8. Christian sagt:

    Frank, vielen Dank, hätte ich echt selber drauf kommen können.
    Hat super funktioniert.

  9. Matze sagt:

    DANKE!!!
    Hast mir den Tag gerettet!!

  10. Sebastian B. sagt:

    Super, vielen Dank hat mir auf die Sprünge geholfen und mich animiert mich mal mit "query" auseinander zusetzen. Gerne hätte ich noch die Möglichkeiten mir z.B. alle Seiten der bis zur zweiten Ebene anzuzeigen also ähnlich wie 'depth=2' bei wp_list_pages. Alternativ würde mich auch reichen wenn ich mit folgender Query mehrere Pages auswählen kann. Würde zwar den manuellen Aufwand erhöhen, könnte ich aber mit Leben, gibt es da eine Möglichkeit? Vielen Dank!

  11. thomas sagt:

    hallo frank,
    bin ja über deinen Code gestolpert, den du unter *Eigener Loop, der Paged definiert* liegen hast.
    Nach längerem stolpern bin ich dann dahinter gekommen das fast alles richtig war, der Code aber korrekt so geschrieben sein muss:
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    query_posts('cat=-1&posts_per_page=35&paged='.$paged);

    Achte auf das .$paged am Ende!

    Bei der Gelegenheit wäre es sehr nett, wenn du mir den Weg zeigen könntest, wie ich die Einstellungen für das Plugin Post_Notification für Redakteure als Benutzer angezeigt bekomme.
    Habe das mittels add_role bzw. add_cap versucht....aber bislang nicht zum Ergebnis gelangt.
    Habe allerdings gesehen, das Du das in deinem Plugin *Adminimize* schon gemacht hast.
    Ich möchte jetzt nicht deshalb das ganze Plugin installieren.
    Wäre Dir daher dankbar, wenn du mir den Weg zeigt.
    liebe Grüße
    thomas

    • @thomas: der Code ist bei mir auch richtig, da die Variable $paged innerhalb von " interpretiert wird, ist also nur eine andere Schreibweise.
      Die Meta Box von Post Notification blende ich via Adminimize mit JS/CSS aus - die Rechte dieser Box sind nicht extra möglich. Daher würde ich einfach eine Funktion schreiben, die die Rechte abfrage und wenn nicht ausreichend, dann wird die Box entfernt: if ( !current_user_can('manage_options') ) { remove_meta_box( 'post_notification','post', 'normal' ); remove_meta_box( 'post_notification','page', 'normal' ); }

  12. thomas sagt:

    Hallo Frank,
    vielen Dank für deine Antwort.
    Hatte vor ein paar Tagen schon mal versucht zu antworten....aber da war wohl irgendwas schief gelaufen beim absenden. Mal schauen obs jetzt klappt.

    Nun ja...ich bin mit nur $paged nicht weitergekommen sondern eben erst mit ='.$paged);

    Hier im Zusammenspiel mit diesem -->Pagination Script<--, wobei ich das dort angesprochene Problem noch nicht gelöst habe (!).
    Was die Post_Notification angeht:Mir ging es nicht um die Meta Box vom Post Notification beim Artikel schreiben für die Redakteure. Die soll schön dort bleiben.
    Vielmehr sollen die Redakteure auch an das Admin Fenster (Einstellungen>Post Notification) von Post Notification ran, weil die erst dort an die Listen der eingetragenen Mail-Adressen gelangen - und das geht bislang nur über den Umweg der vollen Admin Rechte...bzw. hab noch keine andere Lösung gefunden.

    Deine vorgeschlagene Funktion habe ich allerdings schon im Einsatz um den Redakteuren und Authoren die *trackbacksdiv* und die *postcustom* Felder zu entfernen.

    liebe Grüße
    thomas

    • @thomas: doe paged-Funktion muss als Varible da sein, muss also via PHP ansprechbar sein; insofern ist eventuell der Fehler in der Syntax.
      Wenn du die Optionen von Post Notification an andere User mit weniger Rechten geben willst, dann musst du das Plugin ändern, oder das Rechteobjekt an diese Rolle übergeben; das kann man am einfachsten via Plugin Members machen. Allerdings hat diese Rolle dann die Rechte auf alles, was dieses Plugin als Min-Rechte-Objekt verlangt. Aktuell fragt das Plugin User-Level 8 ab, was veraltet ist und dann in die Rechte übersetzt wird. Insofern wäre wohl ein Mail an den Autor gut, das er ein eigenes Objekt nutzt, dann kann jeder dies entsprechend für sich nutzen und anpassen. In deinem Fall würde ich statt der 8 das Objekt unfiltered_html abfragen und deinen Autoren dies geben, bzw Editoren haben das Objekt.

  13. Frank sagt:

    Hallo Frank, ich nutze aktuell diesen Code, um auf der Hauptseite die Kategorie 321 nicht mit anzuzeigen:

    function limit_front_page() {
    if(is_home()){
    global $wp_query;
    query_posts(
    array_merge(
    array('cat' => -321),
    $wp_query->query
    )
    );
    }
    }
    add_action('thesis_hook_before_content', 'limit_front_page');

    Nur wie muss ich jetzt die Zeile array('cat' => -321), erweitern, um auch die Kategorien '-5, -321, -407, -415' aus zu blenden.

    Hab schon mit Komma dazwischen, ohne Komma versucht - klappt nicht.

    Vielen Dank vorab.

  14. Frank sagt:

    function limit_front_page() {
    if(is_home()){
    global $wp_query;
    query_posts(
    array_merge(
    array('cat' => array('-5', '-407', '-415') );
    $wp_query->query
    )
    );
    }
    }
    add_action('thesis_hook_before_content', 'limit_front_page');

    Hm, funktioniert nicht: Parse error: syntax error, unexpected ';' in /is/htdocs...

    Hast du eine Alternative - bitte?

  15. Frank sagt:

    Frank, oder dieser funktioniert - fast.

    function limit_front_page() {
    global $query_string;
    if (is_home()) {
    query_posts(array('category__not_in' => array(5,321,407,415)));
    }
    }
    add_action('thesis_hook_before_content', 'limit_front_page');

    Die Kategorien werden alle korrekt ausgeblendet auf der Home-Seite.
    Nur es tritt der Effekt auf, dass auf der Home-Seite (und nur da) beim Klick auf den Link für frühere Beiträge) - dieser befindet sich ganz unten - sich zwar der Link im Browser korrekt ändert - aber die Beiträge dazu nicht; es bleiben die selben.

    Was könnte da falsch sein - an dem Code?
    Danke dir schon mal.

    • @Frank: wenn du nur auf der home-Seite limitieren willst, dann würde ich eher per Template und query_posts arbeiten, da kannst du auch die Pagination mitgeben. Dann spielt sich alles im Template ab und kostet keine Filteraktion an anderer Stellen.

  16. Der Bueltge wieder! Danke für den Tipp mit der Pagination. Jetzt kann ich endlich auch custom post types auf einer separaten Seite ausgeben und nach x Beiträgen umbrechen. :))

  17. Grandy sagt:

    Hallo Frank,

    jetzt muss ich mich doch mal an dich direkt wenden x.X

    ich habe auf meiner Startseite einen Querie der die neuesten Inhalte ausgeben soll, die Aufteilung auf die Seiten stimmt, und auch die Pagination wird angezeigt. Aber anscheinend habe ich ein Problem mit der $paged-Variable auf der Startseite ist sie 0 (Was ja auch stimmt) auf alles anderen Seiten ist sie aber leer, wodurch auch auf Seite 2,3,4 usw (nach der URL: /page/2) trotzdem immer die ersten Artikel angezeigt werden. Was mache ich falsch?

    Ich habe schon umfassend mit rewind und reset rumprobiert, auch andere queries auf der Seite habe ich entfernt aber das hat alles nichts geholfen ._.

    • @Grandy: klingt mir nach einem Problem; eventuell eine Plugin oder was anderes, was Einfluss auf den Loop hat. Im Standard würde dies sonst klappen; da hilft nur suchen; alle plugins deaktivieren, usw.

  18. Nicole sagt:

    Ich habe das gleiche Problem wie Grandy. Ich möchte eine Kategorie auf meiner Startseite ausschließen, im Archiv etc. aber anzeigen. Ich habe folgenden Code integriert: Die Kategorie wird ausgeblendet, aber die Navigation unter den Artikeln 'Ältere Posts' versagt. Es wird auf jeder folgenden Seite die Startseite angezeigt. Da ich mich nicht besonders gut auskenne, war mein erster Gedanke, dass ich den Code an der falschen Stelle eingefügt habe. Ich nutze TwentyTen und weiß im Grunde nicht, wo der richtige Platz für den Befehl ist. Plugins nutze ich kaum. Für einen kleinen Hinweis, wie ich den Fehler beheben kann, wäre ich dankbar. Viele Grüße

  19. Nicole sagt:

    Hm ich sehe, dass mein Query Code nicht dargestellt wurde:

    Ich möchte die Kategorie nicht aus dem Suchergebnis ausschließen, sondern die Artikel dieser Kategorie sollen nicht auf der Startseite angezeigt werden. Mein Code scheint richtig, allerdings versagt die Navigation unter den Posts und zeigt statt der 2., 3. oder 4. Seite immer die Startseite an. Das muss doch ohne Plugin zu beheben sein oder?

    • @Nicole: dies habe ich schon verstanden, dazu muss lediglich die Abfrage geändert werden, ist es im Bsp. is_search, so ist die Startseite is_home oder is_front_page.

  20. Gecko123 sagt:

    Hi, tolle Erläuterungen!
    Hat jemand eine Ahnung wie ich die URL umbenennen kann, also /page/2/ in /seite/2/ ?
    greez und vielen Dank!

  21. Gecko123 sagt:

    Super, vielen Dank hat funktioniert :)

Trackbacks

  1. [...] erklärt Anpassungen der WordPress Loop-Ausgaben wie Pagination bei Custom Queries, Anzahl der [...]

© 2014, since 2005 bueltge.de [by:ltge.de] · Theme is built by ThemeShift