WordPress как на ладони
rgbcode is looking for WordPress developers.

Вывод постов на сайте с другого сайта

Хочу на основном сайте в сайтбаре вывести блок с новостями, которые будут создаваться на отдельном сайте. Понятно, что все можно реализовать на одном сайте и это не сложно, но мне нужен именно такой вариант.

Подскажите такое можно реализовать ? Есть какие-то статьи полезные на эту тему?

1
lethalblo
2 года назад 15
  • 1
    el-lable620 el-lable.ru

    Смотрите в сторону REST API

    На сайтах показывающих блок новостей делаете запросы через api через Ajax на сайт источник новостей с помощью REST API запроса, который будет возвращать HTML блок новостей, который вы и выводите на сайтах.

    Kama 2 года назад

    И закэшировать результат нужно не забыть. Можно в транзитку.

    el-lable 2 года назад

    Если REST API запрос(ы) будут в GET формате, то кеширование может быть само по себе на уровне сервера.

    Kama 2 года назад

    Ну так запрос то делать все равно нужно будет, а это дорого по времени.

    el-lable 2 года назад

    Там задержка будет не больше чем загрузка обычной килобайтной картинки.
    Я бы не заморачивался с транзитками.

    Kama 2 года назад

    Это смотря где сервер находится. Загрузка картинки - это одно, а резолвинг ДНС + https рукопожатия всякие. До секунды может доходить...

    Какие заморочки с транзитками?

    $key = 'my_key';
    
    $html = get_transient( $key );
    
    if ( $html === false ) {
    
    	// получаем HTML
    	$resp = wp_remote_get( 'https://url' );
    	$html = wp_remote_retrieve_body( $resp );
    
    	set_transient( $key, $html, HOUR_IN_SECONDS );
    }
    
    echo $html;

    4 строчки кода, которые могут ускорить страницу на фронте от 0,1 до 1 секунды - это заморочки? Даже не знаю что сказать...

    stepan 2 года назад

    я почему-то подумал, что транзит использовать на сайте источнике.. вот наивный.
    Kama все верно пишет! Это очень правильное замечание по поводу кеширования результатов ответа сервера.

    Комментировать
  • 1
    stepan2278 www.weblancer.net/users/stepanko/?affili...

    на сайте источнике вам нужно создать урл, по которому будут возвращаться ваши новости.
    создать урл - это может быть файл (last-news.php) в корне сайта.
    Там подключ среду WP и делаете запрос на новости get_posts()

    /* Подгружаем среду WordPress */
    require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php' );

    У себя на сайте потом дергаете тот урл (вызываете урл) через
    CURL или file_get_contents()
    но также можно и через AJAX-запрос
    и в ответ будете получать ТО, что написали в файле last-news.php

    Для начала создайте файл
    last-news.php
    в нем пропишите

    <?php echo 'hello';

    И потом дернете тот файл с другого сайта, если получится - то дальше уже подкл среду WP и пишите, все что нужно.

    Также замечу, что можно и REST API использовать - все зависит от того, что для вас будет проще в понимании.

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация