Поддержка Проблемы и решения Интеграция кастомной странички в текущую тему

  • Приветствую уважаемые!
    Возникла следующая проблема, подскажите в какую сторону копать.

    Имеется кастомная страничка следующего вида

    <?php
        if ( !isset($_GET["lat"]) || ""==trim($_GET["lat"]) ) {
            die('HUY-to tam (lat)');
        }
        if ( !isset($_GET["lng"]) || ""==trim($_GET["lng"]) ) {
            die('HUY-to tam (lng)');
        }
    ?>
     
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>БЛА БЛА БЛА</title>
        <meta charset="utf-8" />
     
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.3/leaflet.css">
        <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.3/leaflet-src.js"></script>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
        <script src="http://cdn.leafletjs.com/leaflet-0.6.4/leaflet.js"></script>
        <script src="http://api-maps.yandex.ru/2.0/?load=package.map&lang=ru-RU" type="text/javascript"></script>
     
    </head>
     
    <body onload = load();>
     
        <div style = "width:100%; height:100%" id = "map_div_id"></div> 
     
        <script type='text/javascript'>
     
        var global = { map: null, marker:null, lat: <?php echo $_GET["lat"]; ?>, lng: <?php echo $_GET["lng"]; ?>};
        
        function load() {
     
            var mymap = L.map('map_div_id').setView([global.lat, global.lng], 17);
                
            var marker = L.marker([global.lat, global.lng]).addTo(mymap);
            marker.bindPopup("<b>ТВОЯ ЗДЕСЯ!</b><br>ЧЕЛЯБА ЁБА ( с )").openPopup();
            
            L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
            attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
            }).addTo(mymap);
        }
            </script>
     
    </body>
    </html>

    Вывожу просто карту с маркером на весь экран по запросу вида

    http://localhost/showmap.php?lat=53&#8230;.lng=83.7718804

    Соответственно каким образом мне эту карту встроить на существующую страницу шаблона? Причем необходима чтобы страница принимала параметры get.
    +++ каким то образом на эту отдельную страницу в шаблоне надо прописать все линки в head

    Т.е добавить карту на страницу в теме я могу, но как мне прикрутить get к странице и вывести по этому get точку на карте но в существующем шаблоне??

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    как мне прикрутить get к странице и вывести по этому get точку на карте но в существующем шаблоне??

    А в чем проблема с $_GET? Конструкция вида <?php echo $_GET["lat"]; ?> вполне работает в шаблонах WordPress.

    Конкретный бы пример как это делается..
    + у меня на конструктор прикручен скрипт с переменными

    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    Конкретный бы пример как это делается..

    Что именно?

    + у меня на конструктор прикручен скрипт с переменными

    Какой конструктор?

    —Какой конструктор?—
    Извиняюсь на onload.
    Перед глазами была немного другая реализация.

    —Что именно?—
    Насколько я понимаю мы объявляем функцию в function.php
    Эта функция будет принимать координаты запроса.
    Далее я хочу эти координаты отобразить на карте которую рисует скрипт

    <script type='text/javascript'>
     
        var global = { map: null, marker:null, lat: <?php echo $_GET["lat"]; ?>, lng: <?php echo $_GET["lng"]; ?>};
        
        function load() {
     
            var mymap = L.map('map_div_id').setView([global.lat, global.lng], 17);
                
            var marker = L.marker([global.lat, global.lng]).addTo(mymap);
            marker.bindPopup("<b>ТВОЯ ЗДЕСЯ!</b><br>ЧЕЛЯБА ЁБА ( с )").openPopup();
            
            L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
            attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
            }).addTo(mymap);
        }
            </script>

    Как подключается функция к старице текущего шаблона?
    Как поместить карту на эту страницу используя скрипт?
    Как передать координаты скрипту?
    Как подключить библиотеки только для текущей страницы шаблона?

    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    Извиняюсь на onload.

    Меняете body onload на что-то типа window.onload = function() {load();}, либо в header.php добавляете условие is_page или is_page_template

    
    <?php if(is_page(42)) : ?>
        <body onload = load();>
    <?php else : ?>
        <body>
    <?php endif; ?>
    

    Также, желательно добавить функцию body_class() к body: <body <?php body_class(); ?>>

    Насколько я понимаю мы объявляем функцию в function.php
    Эта функция будет принимать координаты запроса.

    Не понял о какой функции идет речь. У Вас же координаты вставляются напрямую в js из адресной строки?

    Как подключается функция к старице текущего шаблона?

    Какая функция?

    Как поместить карту на эту страницу используя скрипт?

    Вероятно, вставить в файл шаблона.

    Как передать координаты скрипту?

    Какому? Если Вы про js, то как я уже написал, я вижу у Вас прямую вставку из get-запроса <?php echo $_GET["lat"]; ?>, т.е. в адресной строке это будет адрес_страницы/?lat=10

    Как подключить библиотеки только для текущей страницы шаблона?

    Можно аналогично с помощью функции is_page по ID страницы или is_page_template по названию файла шаблона:

    if( is_page(42) ) {
        wp_enqueue_script( 'yandexmaps', '//api-maps.yandex.ru/2.0/?load=package.map&lang=ru-RU' );
    }

    Спасибо!

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Тема «Интеграция кастомной странички в текущую тему» закрыта для новых ответов.