解決方案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);
}
}
我將建立一個插件的方式,創建一個自定義職位類型,類似於媒體上傳類型,然後按照您的意願修改(添加例如類別) 。
我喜歡插件的想法,所以讓我知道你完成,祝你好運。
編輯:如果你真的想所有的圖像文件複製到另一個目錄,你可以用做這樣的事情:
$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 2015-03-24 07:04:55