Intereting Posts
Рекомендуемый способ загрузки / вставки родительской и дочерней таблиц стилей для включения кэширования Лицензирование темы и разрешение на изменение контента Проблема с шаблонами SSL для субдоменов wp multisite Запретить пользователям в бэкэнде видеть уведомления WP / Plugin и обновлять аннуитеты? Заголовок .png не обновляет Является ли WordPress хорошим вариантом для этого …? Пользовательский запрос с query_posts не показывает сообщение без определенного meta_key Заметки WP_debug объясняют, почему мой сайт работает так медленно? Безопасно ли вручную подписывать пользователя при использовании AJAX? Отображать содержимое метабокса, если оно заполнено Отправка пользовательских сообщений для подписчиков Доступ к переменной $ post из шаблона Как показать другую домашнюю страницу для входа в систему и без входа в систему? Исключить идентификатор сообщения из массива, заданного в пользовательском поле Удалите ссылку с яблочным прикосновением, сгенерированную WordPress

Получить wp_get_attachment_url вне цикла

Мне нужно получить отображаемое изображение вне цикла. Это значит, что у меня может быть другое полноэкранное фоновое изображение для каждой страницы, заданное с помощью отображаемого изображения.

После некоторых исследований я смог получить идентификатор сообщения за пределами цикла.

Это то, что у меня есть:

$page_object = get_queried_object(); $page_id = get_queried_object_id(); $bkgdImg = wp_get_attachment_url( $page_id ); if (!empty($bkgdImg)) { $backgroundImg = $bkgdImg; } else { $defaultbackground = . get_template_directory_uri() . "/images/default-background.jpg"; $backgroundImg = $defaultBackground; } echo $backgroundImg; 

Благодаря!

если результат, который вы ищете, – это распечатка URL-адреса, как в вашем примере, тогда это должно работать:

 $page_id = get_queried_object_id(); if ( has_post_thumbnail( $page_id ) ) : $image_array = wp_get_attachment_image_src( get_post_thumbnail_id( $page_id ), 'optional-size' ); $image = $image_array[0]; else : $image = get_template_directory_uri() . '/images/default-background.jpg'; endif; echo $image; 

Это заработало и получило URL-адрес изображения:

 $page_id = get_queried_object_id(); $post_thumbnail_id = get_post_thumbnail_id( $page_id ); $bkgdImg = wp_get_attachment_url( $post_thumbnail_id ); echo $bkgdImg; 

Спасибо за вашу помощь, он поставил меня в правильном направлении.

У вас есть пара синтаксических ошибок, но в вашем вопросе вы заявляете, что …

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

wp_get_attachment_url принимает фактический идентификатор привязки, а не идентификатор страницы, к которому прикреплено изображение. Поэтому я предполагаю, что вопрос: «Почему я не получаю URL-адрес изображения, который я ожидаю?»

Вам нужно использовать get_post_thumbnail_id и передать это в wp_get_attacment_url

 $bkgdImg = wp_get_attachment_url(get_post_thumbnail_id( $page_id )); 

… возможно со вторым аргументом для указания размера .

Надеюсь, я правильно догадался 🙂

Добавить поддержку темы для thumbnail add_theme_support('post-thumbnails');

Затем напишите приведенный ниже код на странице архива. Он работает до вашего цикла WordPress

 $thumb_id = get_post_thumbnail_id(); $thumb_url_array = wp_get_attachment_image_src($thumb_id, 'thumbnail-size', true); $thumb_url = $thumb_url_array[0]; echo $thumb_url;