Der beste Weg, um eine Reihe von benutzerdefinierten Feldern in ein Array zu bekommen?

Ich habe eine Reihe von benutzerdefinierten Feldern an bestimmte Seiten angefügt. Diese Felder heißen slide1, slide2, side3, slide4, slide5, slide6.

Das sind Bilder, die als Slideshow verwendet werden (Ich benutze dafür den jflow-Slider – http://net.tutsplus.com/articles/news/using-the-wonderful-jflow-plugin-screencast/ )

(Ich möchte sie nicht alle als “Folie” bezeichnen und in ein benutzerdefiniertes Feldfeld einfügen, da für jede Folie Beschriftungen vorhanden sein können. Wenn sowohl Folien als auch Beschriftungen benutzerdefinierte Feldfelder sind, stimmt die Reihenfolge möglicherweise nicht überein.)

Jetzt werden manchmal nur drei Folien (Folie1 bis Folie3) und manchmal alle sechs Folien (Folie1 bis Folie6) eingegeben.

Da ich nicht sehr PHP-klug bin, frage ich mich, wie man diese benutzerdefinierten Felder am besten in ein PHP-Array einfügt und sie dann durchläuft, um den Code auszudrucken, der ein wenig wie der folgende aussieht?

Der zu druckende Code, zum Beispiel das Bild von slide1, würde etwa lauten:

 <img src="https://wordpress.stackexchange.com/questions/2054/best-way-of-getting-a-a-series-of-custom-fields-into-an-array/"> 

Solutions Collecting From Web of "Der beste Weg, um eine Reihe von benutzerdefinierten Feldern in ein Array zu bekommen?"

Diese Art des Wokrings mit Dias scheint genauso populär wie schrecklich zu sein … 🙂 Ich habe kürzlich etwas sehr ähnliches geschrieben .

Grundidee, nach Bedarf anpassen:

 $id = get_the_ID(); $slides = array(); $i = 1; foreach( get_post_custom_keys( $id ) as $key ) if ( false !== strpos( $key, 'slide' ) ) $slides[$key] = get_post_meta( $id, $key, true); while( isset( $slides["slide{$i}"] ) ) { echo ''; $i++; } 

Sind Sie bereit, Folien als separate Beiträge zu speichern? Ich habe das in der Vergangenheit gemacht.

Erwägen Sie, der Bildschirmpräsentation einer Seite Posts mit benutzerdefinierten Feldern zuzuweisen. Erstellen Sie für jedes Bild, in dem Sie einen benutzerdefinierten Feldschlüssel “slide_show_for” erstellen, einen Post und schreiben Sie in die ID der übergeordneten Seite.

slide_show_for => 29

Wo auch immer Sie Ihre Diashow aufrufen, verwenden Sie Folgendes:

 query_posts('meta_key=slide_show_for&meta_value='.$wp->query_vars['p']); 

Wenn Sie die Folienreihenfolge strikt steuern müssen und die Folien nicht in der Reihenfolge erstellen, in der Sie sie anzeigen möchten, empfehle ich das postMash-Plugin , um Posts mit einer Drag & Drop-Oberfläche zu bestellen. Dieses Plugin bietet nicht die Möglichkeit, die Kategorie der Beiträge zu wählen, die Sie bestellen möchten. Das Optionsfeld zeigt standardmäßig alle Posts an. Ich habe den Plugin-Code gehackt, um die Kategorie zu hardcodieren, die ich bearbeiten möchte. Das kann außerhalb Ihrer Komfortzone liegen, und vielleicht gibt es eine andere Möglichkeit, die Reihenfolge zu steuern, wie zum Beispiel das manuelle Bearbeiten der Posts menu_order von phpmyadmin.