it-swarm.com.de

Es müssen bestimmte Daten aus dem Array abgerufen werden

Ich baue ein individuelles Karussell für einen Kunden. Ich habe eine Funktion, die Blöcke mit drei Bildern aus allen an einen Beitrag angehängten Bildern abruft:

global $rental;

$images = get_children( array(
    'post_parent' => $rental_id,
    'post_status' => 'inherit',
    'post_type' => 'attachment',
    'post_mime_type' => 'image',
    'order' => 'ASC',
    'orderby' => 'menu_order ID'
) );

$array = $images;
$number_of_elements = 3;
$count = count( $array );
$split = array();

for ( $i = 0; $i <= $count - 1; $i++ ) {
    $slices = array_slice( $array, $i , $number_of_elements);
    if ( count( $slices ) != $number_of_elements )
        break;

    $split[] = $slices;
}

if ($split) :
    foreach ($split as $outeritem) :    
        echo '<div class="Outer Top">';
            foreach ($split as $inneritem) :
                echo '<div class="Inner Top">';
                echo '<img src="' . $inneritem . '">';
                echo '</div>';
             endforeach;
        echo '</div>';
    endforeach;
endif;

//print_r( $split );

Alles, was ich zum Abschluss brauche, ist das Ersetzen von inneritem durch die URL des Bildes. Die Daten befinden sich alle in einem Array, und wie Sie sehen, muss ich nur den Wert von guid für jedes Element abrufen. Das folgende Array stammt aus dem Entfernen der print_r( $split ); und ich habe alle fremden Daten aus Gründen der Übersichtlichkeit entfernt:

Array (
    [0] => Array (
        [0] => WP_Post Object (
            [ID] => 120
            [guid] => http://******/wp-content/uploads/2016/12/T15923-11-1-1.jpg
        )
        [1] => WP_Post Object (
            [ID] => 121
            [guid] => http://******/wp-content/uploads/2016/12/T15923-12-1-1.jpg
        )
        [2] => WP_Post Object (
            [ID] => 122
            [guid] => http://******/wp-content/uploads/2016/12/T15898.jpg
        )
    )
    [1] => Array (
        [0] => WP_Post Object (
            [ID] => 121
            [guid] => http://******/wp-content/uploads/2016/12/T15923-12-1-1.jpg
        )
        [1] => WP_Post Object (
            [ID] => 122
            [guid] => http://******/wp-content/uploads/2016/12/T15898.jpg
        )
        [2] => WP_Post Object (
            [ID] => 123
            [guid] => http://******/wp-content/uploads/2016/12/T15923-13-1-1.jpg
        )
    )
    [2] => Array (
        [0] => WP_Post Object (
            [ID] => 122
            [guid] => http://******/wp-content/uploads/2016/12/T15898.jpg
        )
        [1] => WP_Post Object (
            [ID] => 123
            [guid] => http://******/wp-content/uploads/2016/12/T15923-13-1-1.jpg
        )
        [2] => WP_Post Object (
            [ID] => 124
            [guid] => http://******/wp-content/uploads/2016/12/T15923-14-1.jpg
        )
    )
)
3
warm__tape

Sie sollten in der Lage sein, Ihre Daten umzuschreiben und get_permalink als @Benoti anzugeben, während Sie das $split -Array weglassen.

get_permalink akzeptiert entweder die Post-ID oder ein Post-Objekt.

global $rental;

$images = get_children( array(
    'post_parent' => $rental_id,
    'post_status' => 'inherit',
    'post_type' => 'attachment',
    'post_mime_type' => 'image',
    'order' => 'ASC',
    'orderby' => 'menu_order ID'
) );

$array = $images;
$number_of_elements = 3;
$count = count( $array );

for ( $i = 0; $i <= $count - 1; $i++ ) {
    $slices = array_slice( $array, $i , $number_of_elements);
    if ( count( $slices ) != $number_of_elements )
        break;

    echo "<div class='Outer Top'>";
    foreach( $slices as $inneritem ) {
        $link = wp_get_attachment_url( $inneritem->ID );
        echo "<div class='Inner Top'>";
        echo "<img src=' $link  '>";
        echo "</div>";
    }
    echo "</div>";
}
1
Tunji

Ich habe nichts getestet und Ihren Code gelesen, aber es scheint, dass Sie get_permalink () können, wie mir im Kommentar gesagt wurde, aber es ist wahr, dass Sie die Anhangsseite erhalten, nicht die URL.

Sie können leicht auf die Objekt-ID zugreifen

wp_get_attachment_url($inneritem[$i]->ID);

So

if ($split) :
foreach ($split as $outeritem) :    
    echo '<div class="Outer Top">';
    $i=0;
        foreach ($split as $inneritem) :
            echo '<div class="Inner Top">';
            echo '<img src="' . wp_get_attachment_url($inneritem[$i]->ID) . '">';
            echo '</div>';
            $i++;
         endforeach;
    echo '</div>';
    endforeach;
endif;
3
Benoti