Прикрутить к WP страницу с JavaScript

Тема в разделе "Wordpress", создана пользователем HatoL, 17 май 2012.

Статус темы:
Закрыта.
Модераторы: Sorcus
  1. HatoL

    HatoL

    Регистр.:
    5 фев 2008
    Сообщения:
    206
    Симпатии:
    36
    Есть несложное приложение, написанное на JavaScript с применением AJAX (запросы делаются не к WP-скриптам), сложно ли его будет прикрутить к WP? Ни разу с ним не работал, а вот заказчику понадобилось.

    Сорри, не там тему создал... Переместите плз.

    Чуть не забыл... В скрипте все-таки есть немного серверного кода (на PHP) - делает запросы к базе данных. Естественно надо делать запросы к базе, используя тот же самый дескриптор, который использует WordPress. Как это сделать?
     
  2. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    подключить файл wp-blog-header.php и можно использовать функции wp
    PHP:
    <?php 
    require('./wp-blog-header.php');

    $query "SELECT post_title FROM wp_posts WHERE post_type = 'post' ORDER BY id DESC";
    $pages $wpdb->get_results($query); 
    foreach(
    $posts as $post){
        echo 
    $post->post_title.'<br>';
    }
    //или jsonp
    echo $_GET['callback'].'('.json_encode($posts).')';
     
  3. jami

    jami Постоялец

    Регистр.:
    10 авг 2011
    Сообщения:
    114
    Симпатии:
    39
    Если серверный PHP-код нужно встроить не в каждую страницу сайта (как в предыдущем посте), а только в какую-то одну - то есть 2 варианта:
    1. Включить плагином возможность вставки исполняемого на сервере PHP-кода в статические страницы (говорят, это сильно небезопасно) - и вставить в одну из страниц серверный код, к которому будет обращаться AJAX-скрипт.
    2. Написать отдельный скрипт и определить для него правила в htaccess, чтобы он был доступен по прямому URL. Скрипт будет подключаться к базе WP (брать из конфига логин/пасс) и далее работать с ней. При этом, скрипт вызывается отдельно от основных скриптов WP и нет проблем с безопасностью.
    ИМХО, 2й вариант предпочтительнее.
     
Статус темы:
Закрыта.