Получить файл URL по имени изображения
Привет всем, у меня есть несколько изображений в моей медиа-папке в WordPress
когда сохранить новое изображение Wordpress сохранить как год / месяц / имя.png
/wp-content/uploads/2011/01/matt.png
Можно найти изображение по имени и вернуть файл URL, как это?
wp-content/uploads/2011/01/
Я использую это
<?php $upload_dir = wp_upload_dir(); ?>
<img src="<?php echo $upload_dir['baseurl']; ?>/<?php echo $precontent; ?>.png " class="attachment-post-thumbnail">
где $precontent
это имя изображения и $upload_dir['baseurl'];
return /wp-content/uploads, но мне нужны год и месяц этого изображения, поэтому у меня есть /wp-content/uploads/matt.png
любая идея?
3 ответа
Если вы пытаетесь получить полный путь к вложению, подумайте, что вложение просто post_type
= "вложение". Это означает, что вы можете запросить их по имени. Также обратите внимание, что у постов есть уникальные слизни. Так matt.png
будет слизняк matt
:)
function get_attachment_url_by_slug( $slug ) {
$args = array(
'post_type' => 'attachment',
'name' => sanitize_title($slug),
'posts_per_page' => 1,
'post_status' => 'inherit',
);
$_header = get_posts( $args );
$header = $_header ? array_pop($_header) : null;
return $header ? wp_get_attachment_url($header->ID) : '';
}
И тогда вам просто нужно сделать следующее:
$header_url = get_attachment_url_by_slug('matt');
который вернет полный путь к вашему файлу.
Обратите внимание, что sanitize_title();
автоматически преобразует ваше имя в слизняк. Так что если вы загрузили файл с именем. Christmas is coming.png
WordPress обозначил бы это как слизняк christmas-is-coming
, И если вы используете sanitize_title('Christmas is coming');
результат также будет christmas-is-coming
и после этого вы можете получить полный URL.:)
Вы можете создать запрос к базе данных, взглянув на таблицу wp_posts, отфильтровав строки с помощью post_type = 'attachment', опционально post_mime_type, например, 'image/%' и guid, например, '%/$precontent'
Вам придется позаботиться о ситуациях, когда есть:
/wp-content/uploads/2011/01/matt.png
/wp-content/uploads/2011/02/matt.png
Полный URL-адрес изображения находится в столбце GUID. Вы можете разобрать это и получить то, что вам нужно.
$args = array(
'post_type' => 'attachment',
'post_status' => 'inherit',
'post_mime_type' => 'image',
's' => 'image_name.jpg'
); $ query_images = новый WP_Query($ args);
echo $query_images->post->guid;