Можно ли изменить JS строковую переменную в скрипте. js файл из шаблона WordPress PHP файл? - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть проблема, которую я хочу решить, но не до конца понимаю, как к ней подойти, и мне интересно, знает ли кто-нибудь здесь какой-либо путь.

В моей теме WordPress у меня есть скрипт. * Файл 1009 *, расположенный в папке JS, в которой есть скрипт для загрузки Instagram-ленты при загрузке страницы.

$(window).on('load', function(){
 $.instagramFeed({
'username': 'usernamehere',
'container': "#instagram-feed-demo",
'display_profile': false,
'display_biography': false,
'display_igtv': false,
'items': 9,
'items_per_row': 3,
  'styling': false
 });
}); 

В моем шаблоне WordPress для одной страницы я хочу заполнить строку имени пользователя с помощью настраиваемого поля но если я переместлю сценарий в шаблон в теге сценария, он не будет работать, но в сценарии будет работать нормально. js file.

Кто-нибудь знает способ заполнения строки из одного шаблона вообще?

1 Ответ

0 голосов
/ 14 апреля 2020

Не уверен, правильно ли я понимаю, что вам нужно, но вы можете проверить шаблон, в который он загружает скрипт. js файл (с использованием функции wp_enqueue_script) и добавить еще один вызов к функции wp_localize_script с тем же именем обработчика. и передайте ему массив переменных, которые будут доступны для javascript.

Пример:

wp_enqueue_script('script-handler', 'url to the script.js file', []);
wp_localize_script('script-handler', 'jsObjectName', [
  'username' => $usernamehere,
]);

Объект jsObjectName js, созданный с помощью функции wp_localize_script, будет предшествовать вызов файла сценария. js, что делает его значения доступными для использования в сценарии.

Теперь измените код Instegram на что-то вроде этого:

$(window).on('load', function(){
  $.instagramFeed({
    'username': jsObjectName.username,
    'container': "#instagram-feed-demo",
    'display_profile': false,
    'display_biography': false,
    'display_igtv': false,
    'items': 9,
    'items_per_row': 3,
    'styling': false
  });

});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...