Как вставить в wordpress калькулятор, на определенную страницу?

У меня есть калькулятор написанный на Js. И мне надо вставить его ну двух страница в wordpress'e.
<script type="text/javascript"> 
                                            var section = document.getElementsByTagName("section")[0];
                                            var cont = document.createElement("div");
                                            var div_p = document.createElement("div");
                                            var div_f = document.createElement("div");
                                            section.appendChild(cont);
                                            cont.appendChild(div_p);
                                            cont.appendChild(div_f);

                                            cont.style.width = 520;
                                            cont.style.height = 250;
                                            cont.style.position = 'relative';
                                            cont.style.border = 'outset';
                                            cont.style.marginbottom: 20;
                                            div_p.style.width = '50%';
                                            div_p.style.position = 'absolute';
                                            div_p.style.Float = 'left';
                                            div_p.style.marginTop = 20;
                                            div_p.style.marginLeft = 20;
                                            div_f.style.Float = 'right';
                                            div_f.style.marginTop = 20;
                                            div_f.style.marginLeft = 280;
                                            div_f.style.width = '50%';
                                            div_f.style.position='relative';

                                            div_p.innerHTML = "Сумма кредита:<br>Общий годовой процент по кредиту:<br>Срок кредита:<br><br><br>"+
                                                "Ваш ежемесячный платеж:<br>Общая сумма платежей:<br>Переплата по кредиту составляет:";

                                            div_f.innerHTML = "<form name='credit'><input name='sum' type='text' value='' size=12>"+
                                                "<select type='menu' name='usr' id='curr'><option value='rub'> ман.<option value='USD'>дол."+
                                                "<option value='Eur'>евро</select><br><input name='perc' type='text' value='' size=12>%<br>"+
                                                "<input type='text' value='' name='term' size=12><select type='menu' name='ust' id='ust'>"+
                                                "<option value='month'>  мес.<option value='year'>  год</select>"+
                                                "</form><button onclick='count()' value='' style='float:left;'>Считать</button><br>"+
                                                "<form name='result' style='margin-top: 8px' ><input name='month_p' type='text' value='' size=24 ' onfocus='this.blur()'><br>"+
                                                "<input name='total_p' type='text' value='' size=24 onfocus='this.blur()'><br>"+
                                                "<input name='over_p' onfocus='this.blur()'type='text' value='' size=24>";

                                            function count() {
                                                var sum = document.credit.sum.value;
                                                var perc = document.credit.perc.value;
                                                var i = new Array(1,12);
                                                var term = document.credit.term.value*i[document.credit.ust.selectedIndex];

                                                var p = perc/1200;

                                                var a = p*Math.pow((1+p),term)/(Math.pow((1+p),term)-1); //Math.pow - возведение в степень (арг-т, степень)
                                                a = (Math.ceil(a*10000))/10000;

                                                var month_p = a*sum;
                                                var total_p = term*month_p;
                                                var over_p = total_p-sum;
                                                var sel_val = new Array ("ман.", "долл.", "евро");
                                                var val = sel_val[document.credit.usr.selectedIndex];

                                                document.result.month_p.value = (Math.round(month_p*100))/100+" "+val;
                                                document.result.total_p.value = (Math.round(total_p*100))/100+" "+val;
                                                document.result.over_p.value = (Math.round(over_p*100))/100+" "+val;

                                            }
                                        </script>


Как мне это сделать?
  • Вопрос задан
  • 1485 просмотров
Решения вопроса 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Есть несколько вариантов:

1. В шаблоне page.php (single.php если нету первого) ставим проверку is_page(id) и в ней соответствующий код
2. В functions.php оборачиваем весь код в виде функции, функцию вешаем на шорткод, шорткод вставляем в визуальном редакторе на нужных страницах
3. Пишем простенький плагин (или в functions.php) - перехватываем ID нужных страниц на уровне запроса и вставляем нужный код на лету - после the_content() или в подвале, в общем, где он должен быть
UPDATE:
4. В принципе, можно весь этот скрипт убрать из тегов script во внешний js-файл и добавить его в wp_enqueue_script() с соответствующей проверкой is_page(X)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
mahabatuly
@mahabatuly
Frontend-бағдарламашы
is_page( id ) наверно
Ответ написан
Комментировать
@asdz
Сделайте для этих двух страниц отдельный шаблон с калькулятором. https://wpmag.ru/2014/shablony-stranic-wordpress/ и кодекс
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы