@Emmet1

Как правильно экранизировать php код в js?

*перезалил код целеком
код выглядит так:
$('.list_cat a').click(function(){
			cat_id =$(this).attr('class');
			$("div.pic").remove()
			data = {
				action: 'my_action',
				cat_id: cat_id,
			};

			var ajaxurl = "/wp-admin/admin-ajax.php";

			$.ajax({
				type: 'POST',
				url: ajaxurl,
				data: data,
				beforeSend:function() {
					$('#loader').show();
				},
				success: function(response){
					response = JSON.parse(response);
					console.log(response);
					response.forEach(function(item, i, arr){
						function myContent(title, link, id){
							 var container = document.createElement('div');
							 container.className = "pic pic-3d";
							   container.innerHTML = '<?php echo get_the_post_thumbnail(' + id + '); ?> <span class="pic-caption open-right"> \
							    <span class="pic-title">'+title+'</span> \
							    <p><a href="/' + link +'">Смотреть</a></p> \
							  </span>'
							  return $('.portfolio_item').append(container);
						}
						myContent(item.post_title, item.post_name, item.ID);
						$('#loader').hide();

					});
				}
			});
		});


Вся проблема в php echo get_the_post_thumbnail, оно не хочет его выводить. Как мне показалось, все из-за того что я не правильно вписал + id + или не экранировал "?". Но если его экранировать, то пхп код перестает работать. выводится закомментированным
  • Вопрос задан
  • 277 просмотров
Пригласить эксперта
Ответы на вопрос 2
kalyukdo
@kalyukdo
Frontend developer
Перестать пихать JS в фйлы с PHP
Ответ написан
Комментировать
@KzLIFE
Позьвольте уточнить две вещи, ID это переменная или строка ? Если переменная, то в php её нужно вывести таким образом

Функция(переменная), если это строка то функция ("строка").

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

И кстати вы не сможете в коде js постоянно использовать (вызывать) код php, т.к php грузится только один раз при загрузке скрипта. По мне проще это ajaxom решить
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 08:04
1 руб./за проект
22 нояб. 2024, в 06:06
1500 руб./в час
22 нояб. 2024, в 06:04
1 руб./за проект