1

特定の投稿に添付されている画像を取得するコードがWordpressにあります。
その投稿のすべての情報を配列に入れ、組み込みのWordpress関数を使用してそこから画像を取得しますwp_get_attachment_image

次に、foreachループを使用して画像を画像スライダーに表示します。私が抱えている問題は、「image1」を配列の位置1に配置し、「image2」を配列の位置0に配置していることです。
つまり、最初に画像2を表示しています。

これが私のコードです。

    $args = array(
      'post_type' => 'attachment',
      'numberposts' => -1,
      'post_status' => null,
      'post_parent' => $post->ID
     );

    $attachments = get_posts( $args );          
    $images = array($attachments);
    echo '<div id="postSlider"><div class="slides_container">';
    if ( $attachments ) {
        foreach ( $attachments as $attachment ) {
        echo '<div>' . wp_get_attachment_image($attachment->ID, 'large') . '</div>';
        }

        echo '</div>';
        if(sizeof($attachments) > 1) {
            echo '<div class="sliderControls">
            <a href="#" class="sliderBtnPrev">Previous</a>
            <a href="#" class="sliderBtnNext">Next</a>
            <span class="sliderPagination">1 of 3</span>
            </div>';
        }
    }   
    echo '</div>';

私が読んだことから、foreachループは配列の順序を保持します。したがって、ループが最初に「image1」(配列位置[1])を参照するように、配列の順序を変更する必要があると考えています。

アレイに関する私の知識は限られているので、これを行う方法がわかりません。

4

2 に答える 2

1

プログラムで順序を変更したい場合は、特にPHPのさまざまな配列ソート関数を見てください。

  • uasort()—ユーザー定義の比較関数を使用して配列を並べ替え、インデックスの関連付けを維持します
  • uksort()—ユーザー定義の比較関数を使用して、キーで配列を並べ替えます
  • usort()—ユーザー定義の比較関数を使用して、配列を値で並べ替えます

しかし、ワードプレスのチェックアウトについては、このhttp://codex.wordpress.org/Template_Tags/get_posts

于 2013-03-25T12:26:13.703 に答える
0

画像を並べ替えた順序で表示する場合はsort、foreachの直前を使用します

    sort($attachments);
    foreach ( $attachments as $attachment ) {
    echo '<div>' . wp_get_attachment_image($attachment->ID, 'large') . '</div>';
    }

参照:http://php.net/manual/en/function.sort.php

于 2013-03-25T12:24:31.243 に答える