2014-10-09 3 views
0

Все мои медиафайлы называются «icon_0001», «icon_0002», «icon_0003», «illustr_0001», «illustr_0002», «illustration_0003» и т. Д. Вместе с другими файлами изображений, такими как «SummonClear», «StunPowder» и т. Д. Я проверил это с помощью wordpress admin ui, а также var_dumping вложения.получить файл медиафайла post_title

А теперь я пытаюсь восстановить медиафайлы ID с помощью следующего кода:

$post_name = 'illustration_30004'; 
$args = array(
    'post_type' => 'attachment', 
    'post_status' => 'inherit', 
    'post_title' => trim($post_name), 
    'post_mime_type' => 'image/png', 
    'posts_per_page' => -1 
    ); 


$wp_query = new WP_Query($args); 

foreach($wp_query->posts as $image) { 
    var_dump($image); 
    echo '<hr/>'; 

} 

Да, это всего лишь простой код запроса с использованием post_type = attachment. Однако, какое бы имя я даю $post_name, запрос отображает все файлы изображений в медиа-библиотеке, как показано ниже:

object(WP_Post)#1386 (24) { ["ID"]=> int(40735) ["post_author"]=> string(1) "1" ["post_date"]=> string(19) "2014-10-08 10:22:04" ["post_date_gmt"]=> string(19) "2014-10-08 10:22:04" ["post_content"]=> string(0) "" ["post_title"]=> string(11) "SummonClear" ["post_excerpt"]=> string(0) "" ["post_status"]=> string(7) "inherit" ["comment_status"]=> string(4) "open" ["ping_status"]=> string(4) "open" ["post_password"]=> string(0) "" ["post_name"]=> string(13) "summonclear-3" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2014-10-08 10:22:04" ["post_modified_gmt"]=> string(19) "2014-10-08 10:22:04" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(104) "http://101.251.201.22/digital-opal-mu/elin-expedition/wp-content/uploads/sites/2/assets/SummonClear2.png" ["menu_order"]=> int(0) ["post_type"]=> string(10) "attachment" ["post_mime_type"]=> string(9) "image/png" ["comment_count"]=> string(1) "0" ["filter"]=> string(3) "raw" } 

object(WP_Post)#1387 (24) { ["ID"]=> int(40734) ["post_author"]=> string(1) "1" ["post_date"]=> string(19) "2014-10-08 10:22:04" ["post_date_gmt"]=> string(19) "2014-10-08 10:22:04" ["post_content"]=> string(0) "" ["post_title"]=> string(11) "SummonChick" ["post_excerpt"]=> string(0) "" ["post_status"]=> string(7) "inherit" ["comment_status"]=> string(4) "open" ["ping_status"]=> string(4) "open" ["post_password"]=> string(0) "" ["post_name"]=> string(13) "summonchick-3" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2014-10-08 10:22:04" ["post_modified_gmt"]=> string(19) "2014-10-08 10:22:04" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(104) "http://101.251.201.22/digital-opal-mu/elin-expedition/wp-content/uploads/sites/2/assets/SummonChick2.png" ["menu_order"]=> int(0) ["post_type"]=> string(10) "attachment" ["post_mime_type"]=> string(9) "image/png" ["comment_count"]=> string(1) "0" ["filter"]=> string(3) "raw" } 

object(WP_Post)#1388 (24) { ["ID"]=> int(40733) ["post_author"]=> string(1) "1" ["post_date"]=> string(19) "2014-10-08 10:22:04" ["post_date_gmt"]=> string(19) "2014-10-08 10:22:04" ["post_content"]=> string(0) "" ["post_title"]=> string(10) "StunPowder" ["post_excerpt"]=> string(0) "" ["post_status"]=> string(7) "inherit" ["comment_status"]=> string(4) "open" ["ping_status"]=> string(4) "open" ["post_password"]=> string(0) "" ["post_name"]=> string(12) "stunpowder-3" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2014-10-08 10:22:04" ["post_modified_gmt"]=> string(19) "2014-10-08 10:22:04" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(103) "http://101.251.201.22/digital-opal-mu/elin-expedition/wp-content/uploads/sites/2/assets/StunPowder2.png" ["menu_order"]=> int(0) ["post_type"]=> string(10) "attachment" ["post_mime_type"]=> string(9) "image/png" ["comment_count"]=> string(1) "0" ["filter"]=> string(3) "raw" } 

object(WP_Post)#1389 (24) { ["ID"]=> int(40732) ["post_author"]=> string(1) "1" ["post_date"]=> string(19) "2014-10-08 10:22:04" ["post_date_gmt"]=> string(19) "2014-10-08 10:22:04" ["post_content"]=> string(0) "" ["post_title"]=> string(5) "Stomp" ["post_excerpt"]=> string(0) "" ["post_status"]=> string(7) "inherit" ["comment_status"]=> string(4) "open" ["ping_status"]=> string(4) "open" ["post_password"]=> string(0) "" ["post_name"]=> string(7) "stomp-3" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2014-10-08 10:22:04" ["post_modified_gmt"]=> string(19) "2014-10-08 10:22:04" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(98) "http://101.251.201.22/digital-opal-mu/elin-expedition/wp-content/uploads/sites/2/assets/Stomp2.png" ["menu_order"]=> int(0) ["post_type"]=> string(10) "attachment" ["post_mime_type"]=> string(9) "image/png" ["comment_count"]=> string(1) "0" ["filter"]=> string(3) "raw" } 

...and 900+ more of these. 

Я знаю, что у меня есть медиа-файл с именем «illustration_30004», потому что ниже результат включается в результаты 900+.

object(WP_Post)#1871 (24) { ["ID"]=> int(40973) ["post_author"]=> string(1) "1" ["post_date"]=> string(19) "2014-10-07 03:38:14" ["post_date_gmt"]=> string(19) "2014-10-07 03:38:14" ["post_content"]=> string(0) "" ["post_title"]=> string(18) "illustration_30004" ["post_excerpt"]=> string(0) "" ["post_status"]=> string(7) "inherit" ["comment_status"]=> string(4) "open" ["ping_status"]=> string(4) "open" ["post_password"]=> string(0) "" ["post_name"]=> string(18) "illustration_30004" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2014-10-07 03:38:14" ["post_modified_gmt"]=> string(19) "2014-10-07 03:38:14" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(110) "http://101.251.201.22/digital-opal-mu/elin-expedition/wp-content/uploads/sites/2/assets/illustration_30004.png" ["menu_order"]=> int(0) ["post_type"]=> string(10) "attachment" ["post_mime_type"]=> string(9) "image/png" ["comment_count"]=> string(1) "0" ["filter"]=> string(3) "raw" } 

Таким образом, вопрос ... что не так с моим запросом, и почему я получаю все мультимедийные файлы вместо этого post_title я хочу?

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

ответ

0

Я понял, что было ошибкой, благодаря предложению Bizzkit. Я должен был использовать «имя» вместо «POST_TITLE», как показано ниже:

/** 
* Get media image file by name 
*/ 
function get_media_image($image_name) { 

    $post_name = trim($image_name); 

    $args = array(
     'post_type' => 'attachment', 
     'post_status' => 'inherit', 
     'name' => $post_name, 
     'post_mime_type' => 'image/png', 
     'posts_per_page' => -1 
     ); 


    $wp_query = new WP_Query($args); 
    $images = array(); 

    foreach($wp_query->posts as $image) { 
     $images[] = $image->guid; 
    } 

    if(sizeof($images) == 1) { 
     return $images[0]; 
    } 

} 
2

Я не думаю, что 'post_title' является допустимым аргументом. Parameters

Вы можете попробовать:

«имя», чтобы посмотреть сообщения до их слизняк «р», чтобы смотреть их по ID «s», чтобы выполнить поиск по ключевому слову

+0

Bizzkit/Спасибо за предложение, но это медиа-файл, и я не думаю, что медиа-файлы имеют «слизняка»? – Dongsan

+0

Они делают это, вы можете увидеть его, перейдя в библиотеку, затем нажмите на вложение, затем выберите «Просмотреть страницу вложений» или «Изменить более подробную информацию». Вы можете видеть пули в обоих - либо в URL-адресе страницы вложения, либо в слоте редактирования slug на странице редактора вложений (так же, как на странице редактирования после публикации). Позвольте мне знать, если это помогает! – Yavor

 Смежные вопросы

  • Нет связанных вопросов^_^