Intereting Posts
Ошибка при установлении ошибки подключения к базе данных на сайте, который раньше работал нормально Как получить текстовые строки? Как можно использовать сайт WordPress за внутренней сетью? Получение результатов от wp_oembed_add_provider Как обновить статус сообщения для черновика, если роль пользователя «ожидает», admin: поиск настраиваемых полей Как ревизия работает внутри страны? Как ссылаться на путь темы на страницах для изображений? Зарегистрируйте нового пользователя и добавьте значение строки данных для него Заголовок персонализированного заголовка, не заселяющий Как создать короткий код ACF с полем Repeater в WordPress? Присоединитесь к запросу wpdb .. смутитесь! В моей базе данных WordPress буквально нет таблиц NO Пользовательское соглашение об именах и доступе к таблицам для multisite: $ table_prefix vs base_prefix или другое? Как мы можем достичь этого стиля изображения css?

WordPress Javascript, отображающий изображение Вопрос

Я думаю, что я немного запутался, но у меня есть список и кнопка выбора на каждой строке. Когда пользователь нажимает кнопку, появляется модальная мода, и я пытаюсь просто получить изображение (с post_id) для отображения.

Поэтому в PHP у меня есть это:

<img id="changeImage"src=" <?php echo $v[0]->user_image_id ? wp_get_attachment_image_src( $v[0]->user_image_id, array( 'width' => 75, 'height' => 75 ))[0] : wp_get_attachment_url( 259 ); ?>" style="width: 75px; height: 75px"/> 

Это часть списка, поэтому отображается каждое изображение (аватар). Затем нажимается кнопка, и у меня уже есть post_id с этим кодом:

 $('.selectedBtn').on('click', function (e) { e.preventDefault(); var elm = $(this); var data; var dataArray = JSON.parse(sessionStorage.getItem('dataArray')); $.each(dataArray, function(k, v) { if(parseInt(v[0].wyol_list_id) === elm.data('wd')) { data = v[0]; console.log(data); $('#wd_request_shoppers_name').text(v[0].user_name); $('#wd_request_store').text(v[0].wd_store); var imgid = v[0].user_image_id ? v[0].user_image_id : 259; console.log(wp.media()); // USAGE: preloadAttachment(imgid, function (attachment) { console.log(attachment.get('url')); console.log(wp.media.attachment(imgid).get('url')); // this also works }); $('#wd_request_shoppers_image').prop('src', wp.media.attachment(imgid).get('url')); v[0].instructions ? $('#wd_request_shoppers_detail').text(v[0].instructions) : ''; $('#exampleModal1').foundation('open'); } }); //console.log(elm.data('wd')); }); $('#closeModal').on('click', function () { $('#exampleModal1').foundation('close'); }); }); 

Но все, что я получаю, это ошибка console.log:

(индекс): 352 Uncaught TypeError: Не удается прочитать свойство «вложение» неопределенного

На этой строке: 352 if (wp.media.attachment (ID) .get ('url')) {

Так что WP не получил возможность захватить URL-адрес в WP?

заранее спасибо

Addy

Вам нужно вызвать wp_enqueue_media() иначе объект wp не будет иметь параметр media .

Например, перейдите в WP Admin и wp.media консоль JS и введите wp.media на панели управления, это не сработает. Повторите попытку на странице СМИ, и на этот раз она будет работать.

https://codex.wordpress.org/Javascript_Reference/wp.media

Чтобы иметь возможность использовать JavaScript-API, сначала необходимо запустить все необходимые JavaScript-библиотеки и стили:

 wp_enqueue_media(); 

С помощью Тома мне удалось получить эту работу, используя wp.media.model который закончился следующим образом:

 var attachment = new wp.media.model.Attachment.get(imgid); attachment.fetch({ success: function (att) { if (_.contains(['png', 'jpg', 'gif', 'jpeg'], att.get('subtype'))) { //console.log(att.attributes); $("#wd_request_shoppers_image").attr("src", att.attributes.sizes.thumbnail.url); } } }); 

Не уверен, что это самый быстрый способ сделать это, но работает.

Надеюсь, это поможет другим.