Известно, что WP блокирует запуск JS в постах – оно и понятно и правильно. Но вот что делать тем, кому JS на своих страницах все-таки необходим? В сети много примеров как это обойти – некоторые довольно сложные – нужно копаться в движке WP, некоторые не подошли мне, потому что запускали JS при каждом обновлении каждой страницы, хотя мне нужно было привязать JS к одной конкретной странице – конкретному посту.
Вот моё решение как это можно обойти.
1 Шаг – Создаем PHP сценарий или обычный HTML файл и сохраняем на хостинге
В посте про мороженное я так и сделал. Создал на хостинге PHP сценарий IceCream.php
Пользуясь добротой PHP погружаем в него только JS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<script> var IceCreamNumber,EatenIcecreams; EatenIcecreams=0; document.write('<h2>Hello this is JS and while cycles example</h2>'); document.write('<p>Author Panteleev Stanislav 12.12.2015 Welcome to http://digital-flame.ru</p>') //Спрашиваем сколько съесть IceCreamNumber=prompt('Сколько мороженного хотите съесть?',''); //Едим while (IceCreamNumber>0){ EatenIcecreams=EatenIcecreams+(IceCreamNumber-(IceCreamNumber-1)); document.write('eating ice cream number '+EatenIcecreams+'<br>'); IceCreamNumber--; }; //Проверяем число съеденного мороженного if (IceCreamNumber==0){ document.write('<br><h2>WOW!!! I have eaten '+EatenIcecreams+' Ice Creams<h2>'); }; </script> |
2 Шаг
На странице поста создаем форму со ссылкой на наш PHP сценарий
1 2 3 |
<form action="http://digital-flame.ru/myscripts/javascript_oreilly.ru/Chapter1/IceCream.php" method="GET" target="_blank"> <div style="text-align: center;"><input name="submit_form" type="submit" value="START SCRIPT NOW" /></div> </form> |
И вот наш результат
В принципе, можно было в отдельном HTML файле все это сделать, а не в PHP, об этом я уже подумал позже:)