Intereting Posts

Вытягивание сообщений с другого сайта WordPress

Я пытаюсь получить 2 последних сообщения на своем личном веб-сайте, используя следующий код: http://codex.wordpress.org/Function_Reference/fetch_feed#Usage

<h2><?php _e( 'Recent news from Some-Other Blog:', 'my-text-domain' ); ?></h2> <?php // Get RSS Feed(s) include_once( ABSPATH . WPINC . '/feed.php' ); // Get a SimplePie feed object from the specified feed source. $rss = fetch_feed( 'THISISWHEREMYURLGOES/' ); $maxitems = 0; if ( ! is_wp_error( $rss ) ) : // Checks that the object is created correctly // Figure out how many total items there are, but limit it to 5. $maxitems = $rss->get_item_quantity( 2 ); // Build an array of all the items, starting with element 0 (first element). $rss_items = $rss->get_items( 0, $maxitems ); endif; ?> <ul> <?php if ( $maxitems == 0 ) : ?> <li><?php _e( 'No items', 'my-text-domain' ); ?></li> <?php else : ?> <?php // Loop through each feed item and display each item as a hyperlink. ?> <?php foreach ( $rss_items as $item ) : ?> <?php echo esc_html( $item->get_title() ); ?> <li> <a href="<?php echo esc_url( $item->get_permalink() ); ?>" title="<?php printf( __( 'Posted %s', 'my-text-domain' ), $item->get_date('j FY | g:i a') ); ?>"> <?php echo esc_html( $item->get_title() ); ?> <?php printf( __( 'Posted %s', 'my-text-domain' ), $item->get_date('j FY | g:i a') ); ?> </a> </li> <?php endforeach; ?> <?php endif; ?> 

С помощью этого кода я могу получить URL-адрес сообщений, заголовок и дату публикации, и это здорово!

Теперь попытка получить изображение – еще одна проблема. Я пытаюсь использовать:

 <?php echo esc_html( $item->the_post_thumbnail() ); ?> 

Но я получаю ошибку: Неустранимая ошибка: вызов неопределенного метода SimplePie_Item :: the_post_thumbnail ()

Итак, используя SimplePie, есть ли способ получить изображение сообщений?


ОСНОВНАЯ РЕДАКТИРОВКА:

Этот способ получения RSS-канала невелик, он вызывает множество проблем на всем сайте, поэтому, если бы кто-нибудь мог показать мне / направить меня туда, где я могу получить 4 последних сообщения с другого сайта WordPress, это было бы здорово!

Как вы нашли, у WordPress есть некоторые ограничения. Поскольку вы попросили альтернативное решение, я определенно рекомендую использовать WP REST API .

Поскольку WP API еще не является частью WP Core, вам нужно сделать следующее:

  1. Откройте панель плагинов (на сайте, на котором вы пытаетесь вывести сообщения из вашего личного сайта) и установите WP REST API (WP API) .
  2. Активировать плагин
  3. Получение ваших сообщений так же просто, как и вы: http://yoursite.com/wp-json/posts

Поскольку вы хотите только четыре сообщения, вы можете использовать фильтры:

 http://yoursite.com/wp-json/posts?filter[posts_per_page]=4 

Чтобы получить этот JSON в полезное состояние в PHP:

 // Get the JSON $json = file_get_contents('http://yoursite.com/wp-json/posts?filter[posts_per_page]=4'); // Convert the JSON to an array of posts $posts = json_decode($json); 

Теперь вы можете переварить этот массив $posts но вы хотите (путем его прокрутки). Например:

 foreach ($posts as $p) { echo '<p>Title: ' . $p->title . '</p>'; echo '<p>Date: ' . date('F jS', strtotime($p->date)) . '</p>'; // Output the featured image (if there is one) echo $p->featured_image ? '<img src="' . $p->featured_image->guid . '">' : ''; } 

Дополнительная информация в документах WP API .

Если вы не хотите использовать WP REST API , вы можете попробовать использовать API разработчиков WordPress .

Для этого вам придется разрешить плагин WordPress Jetpack. А затем включите REST API.

 <?php $posts = json_decode(file_get_contents("https://public-api.wordpress.com/rest/v1.1/sites/{yoursite.com}/posts")); //You can use the $posts variable afterwards ?>