У меня есть страница со слайд-шоу вверху и изображениями, встроенными в область содержимого.
Мне нужно исключить изображения, которые были вставлены в сообщение, из слайд-шоу.
В настоящее время я исключаю «Рекомендуемое изображение», но это ограничивает меня одним изображением, которое можно вставить в сообщение.
Вот мой существующий код:
$thumbnail = get_post_thumbnail_id();
$images = get_children( 'post_type=attachment&post_mime_type=image&order=asc&orderby=menu_order&post_parent='.$post->ID .'&exclude='.$thumbnail);
Раньше я использовал поле описания метаданных изображения, чтобы исключить изображения, введя «исключить». Это не так приятно для конечного пользователя, как хотелось бы.
Любые предложения, плагины или код!
Обновление: Я обновил код, поэтому теперь я получаю любые URL-адреса изображений из post_content и сравниваю их с изображениями слайд-шоу.
$content = $post->post_content;
$inlineImages = array();
preg_match( '/src="([^"]*)"/i', $content, $inlineImages ) ;
$thumbnail = get_post_thumbnail_id($post->ID);
$images = get_children( 'post_type=attachment&post_mime_type=image&order=asc&orderby=menu_order&post_parent='.$post->ID .'&exclude='.$thumbnail);
if ($images) {
echo '<div id="slideshow">';
foreach ( $images as $attachment_id => $attachment ) {
$image = wp_get_attachment_image_src( $attachment_id,array(900,265));
if (!in_array($image[0],$inlineImages)) {
echo '<img src="'.$image[0].'" width="'. $image[1] .'" height="'. $image[2].'">';
}
}
echo '</div>';
}
Это нормальное решение, хотя регулярное выражение можно улучшить.
Более удачным шагом было бы добавление массива изображений в поле настраиваемого поля, которое обновляется при обновлении поста / страницы или публикации.
Есть предложения, как это сделать?