Решение 1: Первые сообщения запроса, а затем для каждого из них использовать что-то вроде этого кода:
$images = get_children(array(
'post_parent' => get_the_ID(),
'post_type' => 'attachment',
'post_mime_type' => 'image',
'numberposts' => -1
));
foreach ((array) $images as $image) {
print wp_get_attachment_url($image->ID);
}
Мне не нравится это решение, потому что он будет генерировать много запросов SQL.
Решение 2: Напишите свой собственный SQL-запрос, который выберет сразу все изображения. Это должно выглядеть примерно так:
// change this to your custom post type, attachment in your case.
$post_type = 'attachment';
global $wpdb;
$where = get_posts_by_author_sql($post_type);
$query = "SELECT * FROM $wpdb->posts p where p.post_type = 'attachment' AND (p.post_mime_type LIKE 'image/%') AND (p.post_status = 'inherit') AND p.post_parent IN (SELECT $wpdb->posts.ID FROM $wpdb->posts {$where}) ORDER BY p.post_date DESC";
$results = $wpdb->get_results($query);
if ($results) {
foreach ((array) $results as $image) {
print wp_get_attachment_url($image->ID);
}
}
так, как я бы построить этот плагин, создает пользовательский тип записи, подобный тип загрузки носителя, а затем изменить его, как вы хотите (добавить категорию, например) ,
Мне нравится идея плагина, поэтому позвольте мне знать, что вы закончите, удачи.
Edit: Если вы на самом деле хотите, чтобы скопировать все файлы изображений в другой каталог вы могли бы сделать что-то вроде этого с помощью:
$source = wp_upload_dir(); // get WordPress upload directory
$dest= "wp-content/My-new-Directory"; // where you would like to copy
mkdir($dest, 0755);
foreach (
$iterator = new \RecursiveIteratorIterator(
new \RecursiveDirectoryIterator($source, \RecursiveDirectoryIterator::SKIP_DOTS),
\RecursiveIteratorIterator::SELF_FIRST) as $item
) {
if ($item->isDir()) {
mkdir($dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName());
} else {
copy($item, $dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName());
}
}
Спасибо большое! Я собираюсь вернуться к вам, когда плагин закончен :-) – bestprogrammerintheworld