Использование пути к изображению wp_localize_script в jQuery attr - PullRequest
0 голосов
/ 18 июня 2020

Это мой PHP код для загрузки моего jQuery и моего изображения с использованием wp_localize_script в дочерней теме WordPress.

$image = sprintf( '%s/image.png', get_stylesheet_directory_uri() );    
wp_localize_script( 'scroll-image', 'Image', $image ) ) ) );

А это мой jQuery

 $( '.div img' ).attr( 'src', 'Image' );

Но результат HTML возвращает второй параметр для wp_localize_script без полного пути к изображению.

<img src="Image">

Что я пропустил?

Почему мне нужно включать полный путь к изображению в jQuery, когда он уже включен в PHP для переменной $ image?

Я проверял этот ответ , но я не понимаю, почему это нужно сделать так, потому что тег изображения уже выводится с использованием другого кода PHP. Все, что я пытаюсь сделать, это заменить изображение sr c URL.

Обновление: Как насчет того, чтобы использовать изображение как вариант, подобный этому

wp_localize_script( 'scroll-image', 'Image', array( 'src' => str_replace( 'http:', '', get_option( 'my-image' ) ) ) );

1 Ответ

1 голос
/ 18 июня 2020

wp_localize_script принимает три аргумента.

  • $handle: дескриптор скрипта, к которому будут прикреплены данные.
  • $object_name: это переменная, к которой будет осуществляться доступ в вашем javascript файле.
  • $data: массив данных для передачи объекту

В вашем коде jQuery вы получаете доступ к изображению как к строке, а не к переменной.

Ваш код JS необходимо изменить на этот:

 $( '.div img' ).attr( 'src', obj_name.image );

И ваш PHP код должен выглядеть так:

$image = sprintf('%s/image.png', get_stylesheet_directory_uri());
wp_localize_script('scroll-image', 'obj_name', array(
    "image" => $image
));
...