Problem mit post__in und eine Variable

  • Hallo zusammen,

    Ich habe ein kleines Problem. Ich möchte mir in einem Portfolio bestimmte Posts anzeigen lassen. Dieses realisiere ich mit einem Loop der auch sehr gut funktioniert.

    query_posts( array('post__in' => array(5000,6000)) );
    while ( have_posts() ) : the_post();

    Bei der ausführung, gibt er mir die Posts mit der ID 5000 und 6000 aus. Eigentlich genau so wie ich das haben möchte. Um die Usability für andere Nutzer zu vereinfachen, bemächtige ich mich des Excerpts Feldes im Portfolio. Dort sollen meine Kollegen einfach nur die IDs eintragen und das Portfolio erledigt den Rest.

    Wenn ich vor dem Loop eine Variable definiere, funktioniert das ganze aber nicht mehr.

    $wurst = "5000,6000";

    Und dann:

    query_posts( array('post__in' => array($wurst)) );
    while ( have_posts() ) : the_post();

    Es ist allerdings nicht so als würde es gar nicht gehen. Er gibt den ersten Post, also 5000 aus, den Rest nach dem Komma ignoriert er aber.

    Any Ideas?

    Danke im vorraus :D

    Gruß Schmaeddes

    • 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

  • evtl. sind die Anführungszeichen bei der Variablen falsch.

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]


  • $wurst = "5000,6000";

    Und dann:

    query_posts( array('post__in' => array($wurst)) );
    while ( have_posts() ) : the_post();

    Es ist allerdings nicht so als würde es gar nicht gehen. Er gibt den ersten Post, also 5000 aus, den Rest nach dem


    du kannst dir eine array zusammebauen mit den gewünschten werten und dies an an den key als value zuweisen.

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

  • Wenn ich aber testweise vor dem Loop mit einem echo einen Test der Variable mache, zeigt er die IDs richtig an: 5000,6000


    klar: ein Variable kannst du mit echo anzeigen (grundlage PHP), eine Array ist anders zu benutzten als eine Variable, sonst wäre es eine Variable und nicht eine Array (grundlage PHP)

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

  • Ich habe keine Grundkenntnisse und beiße mich jetzt mit viel Recherche durch. Die Aussage (grundlage PHP) hilft mir nicht weiter.

    Ich habe nun mal dieses ausprobiert.

    $postids = array(get_the_excerpt());

    Excerpt ist 500,6000


    query_posts( array('post__in' => $postids) );
    while ( have_posts() ) : the_post();

    Auch dann gibt er mir nur den ersten Post aus. Nicht den zweiten.

    UPDATE:
    Die print_r ausgabe sieht so aus:
    [COLOR=#2A2B2C][FONT=Helvetica Neue]Array ( [0] => 5000,6000 )[/FONT][/COLOR]

    Einmal editiert, zuletzt von Schmaeddes (14. Februar 2013 um 13:42)

  • Ok, dann Nachhilfe Grundlagen, Teil 1 :)

    So könnte es gehen:

    PHP
    $postids = explode(',', get_the_excerpt());

    Erläuterung: Der Text im Exzerpt wird beim Komma aufgeteilt und die einzelnen Bestandteile werden zu Teiles eines Arrays.

  • Ich habe keine Grundkenntnisse und beiße mich jetzt mit viel Recherche durch. Die Aussage (grundlage PHP) hilft mir nicht weiter.


    Grundlage PHP wäre aber gut, http://www.php.net, den dort findet man was eine array ist und wie diese anzuwenden ist.

    Zitat

    UPDATE:
    Die print_r ausgabe sieht so aus:
    [COLOR=#2A2B2C][FONT=Helvetica Neue]Array ( [0] => 5000,6000 )[/FONT][/COLOR]


    das ist nicht anderes als der inhalt eines Key der Array, also fast wie eine einzelne Variable, und du braucht aber je Zahl einen Key mit den Value, sonst ist es keine Array die von der Funktion verwendet werden kann. siehe auch codex.wordpress.org (grundlange rund um Wordpress Funktionen)
    und dafür ist PHP grundlage erstes Jahr PHP (intensiv) lernen notwendig.

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

    Einmal editiert, zuletzt von Shadow (14. Februar 2013 um 14:01)

  • @ spickzettel

    Genau das ist des Rätsels Lösung! Es funktioniert jetzt. Danke! :D

    Habe mich zu sehr danach gerichtet, wenn der post__in Daten von mir Manuel erhält und es dann funktioniert, dass es auch funktioniert das ich es als Variable übergebe. Das mag er anscheinend allerdings gar nicht :D

Jetzt mitmachen!

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