2015-09-12 1 views
0

Ищет много часов без успеха. Мой вопрос прост, но ответ кажется неуловимым. Я хочу отображать первые три изображения вложения отдельно в каждом столбце пользовательского типа сообщения. Следующий код получил меня частично, но я не уверен, как действовать дальше?Невозможно получить вложения приложений пользовательского типа Wordpress для работы в индексированном массиве

<?php 
$attachments = get_children(array(
    'post_parent' => get_the_ID(), 
    'post_type'  => 'attachment', 
    'numberposts' => -1, 
    'post_status' => 'inherit', 
    'post_mime_type' => 'image', 
    'order'   => 'ASC', 
    'orderby'  => 'menu_order ASC' 
    )); 
foreach ($attachments as $attachment_id => $attachment) { 
echo wp_get_attachment_image($attachment_id, 'medium'); 
} ?> 

Хорошо, добавлены вложения свалка здесь:

Array 
(
[106] => WP_Post Object 
(
    [ID] => 106 
    [post_author] => 2 
    [post_date] => 2013-03-13 13:38:11 
    [post_date_gmt] => 2013-03-13 12:38:11 
    [post_content] => 
    [post_title] => autumn_leaves_new2 
    [post_excerpt] => 
    [post_status] => inherit 
    [comment_status] => open 
    [ping_status] => open 
    [post_password] => 
    [post_name] => autumn_leaves_new2 
    [to_ping] => 
    [pinged] => 
    [post_modified] => 2015-08-15 06:01:05 
    [post_modified_gmt] => 2015-08-15 06:01:05 
    [post_content_filtered] => 
    [post_parent] => 278 
    [guid] => http://localhost/pbvcid/wp 
content/uploads/2013/03/autumn_leaves_new2.jpg 
    [menu_order] => 0 
    [post_type] => attachment 
    [post_mime_type] => image/jpeg 
    [comment_count] => 0 
    [filter] => raw 
    ) 

Я думаю, что нужно быть немного яснее в своем объяснении. Код, который я поставил, просто начинает расширяться, поскольку мои знания php ограничены. Я считаю, что то, что я ищу, - это способ вставить вложенные вложения типа типа в индексированный массив, чтобы затем я мог выбрать несколько отдельных вложений из этого массива и отобразить их в своем отдельном div. Пока код не функционирует эффективно и не отображает все вложения в сообщениях (спасибо за всю помощь, пока что кстати).

+0

только что отредактировал мой ответ на основе массива, который вы предоставили – silver

ответ

0

Найдено решение, которое отображает массив правильно:

$attachments = get_children(array(
    'post_parent' => get_the_ID(), 
    'post_type'  => 'attachment', 
    'numberposts' => -1, 
    'post_status' => 'inherit', 
    'post_mime_type' => 'image', 
    'order'   => 'ASC', 
    'orderby'  => 'menu_order ASC' 
    )); 

    $imgArray = array(); 
    $counter = 0; 
    foreach ($attachments as $attachment_id => $attachment) { 

    $imgArray[$counter] = $attachment_id; 
    $counter++; 
    if($counter > 2) { 
    break; 
    } 
    } 
    ?> 
<div class="attachment1"><?php echo wp_get_attachment_image($imgArray[0], 'medium'); ?></div> 
<div class="attachment2"><?php echo wp_get_attachment_image($imgArray[1], 'medium'); ?></div> 
<div class="attachment3"><?php echo wp_get_attachment_image($imgArray[2], 'medium'); ?></div> 
-1

Попробуйте использовать нижеследующий код для получения вложений.

<?php 
$attachments = get_children(array(
    'post_parent' => get_the_ID(), 
    'post_type'  => 'attachment', 
    'numberposts' => 3, 
    'post_status' => 'inherit', 
    'post_mime_type' => 'image', 
    'order'   => 'ASC', 
    'orderby'  => 'menu_order ASC' 
    )); 
foreach ($attachments as $attachment_id => $attachment) { 
    echo wp_get_attachment_image($attachment_id, 'medium'); 
} ?> 
+0

@Paubab для получения более подробной информации [https://codex.wordpress.org/Function_Reference/get_children](https://codex.wordpress.org/ Function_Reference/get_children) –

+0

Обычно лучше всего включать описание с изменениями кода. – rnevius

-1

Попробуйте

$attachments = get_children(array(
    'post_parent' => get_the_ID(), 
    'post_type'  => 'attachment', 
    'numberposts' => -1, 
    'post_status' => 'inherit', 
    'post_mime_type' => 'image', 
    'order'   => 'ASC', 
    'orderby'  => 'menu_order ASC' 
)); 
foreach ($attachments as $image) { 
    echo wp_get_attachment_image($image->ID, 'medium'); 
} 

, если это не сработает сваливать свои вложения переменной и отправить результаты назад здесь,

вы можете сбросить его, как этот

echo '<pre>', print_r($attachments, 1), '</pre>';