Исключить изображения в публикации из вложенных изображений

Я использую простое слайд-шоу изображений jQuery в файле single.php, которое вызывает все прикрепленные изображения к моему сообщению. Но я хочу исключить изображения, размещенные в фактическом сообщении, но сохранить все изображения, фактически прикрепленные к сообщению.

Я использую этот фрагмент кода для захвата всех вложенных изображений, но, к сожалению, он также захватывает все изображения в содержимом сообщения, что не обязательно:

<?php
$attachs = get_posts(array(
    'numberposts' => -1,
    'post_type' => 'attachment',
    'post_parent' => get_the_ID(),
    'post_mime_type' => 'image', // get attached images only
    'output' => ARRAY_A
));

if (!empty($attachs)) {
    foreach ($attachs as $att) {
        // get image's source based on size, 
        // can be 'thumbnail', 'medium', 'large', 'full' 
        // or registed post thumbnails sizes
        $src = wp_get_attachment_image_src($att->ID, 'full');
        $src = $src[0];

        // show image
        echo "<div style='margin: 0 10px 10px 0; float: left'><img src='$src' /></div>";
    }
}
?>

Есть рекомендации?


person Justin    schedule 17.03.2011    source источник
comment
Вы нашли решение для этого?   -  person testing    schedule 07.03.2012


Ответы (1)


В Wordpress, к сожалению, нет разницы между прикрепленными изображениями и изображениями, вставленными в сообщение. Обычное решение, которое люди используют в Интернете, состоит в том, чтобы добавить метаданные к сообщению, называемому, например, «_inserted_image» (true|false) и использовать хуки для обновления этого значения, когда вы вставляете и изображение встроены в сообщение. Как-то слишком сложно, на мой взгляд, мысль.

Простым обходным решением было бы создать категорию специально для вашего слайд-шоу и сразу поместить все изображения, предназначенные для слайд-шоу, в эту категорию из медиатеки. Затем просто добавьте 'category' => 'for_slideshows' к вашему условию в параметрах получения сообщений.

$attachs = get_posts(array(
                'numberposts' => -1,
                'post_type' => 'attachment',
                'post_parent' => get_the_ID(),
                'post_mime_type' => 'image', // get attached images only
                'output' => ARRAY_A,
                'category' => 'for_slideshows'
                ));

Надеюсь, поможет.

person Romain Bruckert    schedule 19.11.2012