如何使用WP REST API从另一个WP安装导入特色图像

时间:2020-12-21 作者:Backfolder

首先,我是设计师,不是程序员(…所以我想真正的问题是:|),我看不到如何使用WP Rest API将特色图像从安装#1导入到另一个安装,因为两者都使用相同的DB。我一直在使用下一个插件:

    <?php
/**
 * Plugin Name:  Get Posts via REST API
 * Description:  Gets the latest two posts from a blog via the REST API. Blog link, title and date included.
 * Plugin URI:   https://renemorozowich.com
 * Author:       Rene Morozowich
 * Version:      1.0
 * Text Domain:  getpostsviarestapi
 * License:      GPL v2 or later
 * License URI:  https://www.gnu.org/licenses/gpl-2.0.txt
 *
 * @package getpostsviarestapi
 */

// Disable direct file access.
if ( ! defined( \'ABSPATH\' ) ) {
    exit;
}

/**
 * Get posts via REST API.
 */
function get_posts_via_rest() {

    // Initialize variable.
    $allposts = \'\';
    
    // Enter the name of your blog here followed by /wp-json/wp/v2/posts and add filters like this one that limits the result to 2 posts.
    $response = wp_remote_get( \'https://www.heretheweb.com/blog/wp-json/wp/v2/posts?per_page=3&embed=true\' );

    // Exit if error.
    if ( is_wp_error( $response ) ) {
        return;
    }

    // Get the body.
    $posts = json_decode( wp_remote_retrieve_body( $response ) );

    // Exit if nothing is returned.
    if ( empty( $posts ) ) {
        return;
    }

    // If there are posts.
    if ( ! empty( $posts ) ) {

        // For each post.
        foreach ( $posts as $post ) {

            // Use print_r($post); to get the details of the post and all available fields
            // Format the date.
            $fordate = date( \'n/j/Y\', strtotime( $post->modified ) );
            
            // $featured_image = get_the_post_thumbnail();

            // Show a linked title and post date.
            // $allposts .= \'<a href="\' . esc_url( $post->link ) . \'" target=\\"_blank\\">\' . esc_html( $post->title->rendered ) . \'</a>  \' . esc_html( $fordate ) . \'<br />\';
            $allposts .= \'<div class="item-blog-container"> <img src="\' . esc_html( $featured_media ) . \'"><a href="\' . esc_url( $post->link ) . \'" target=\\"_blank\\">\' . esc_html( $post->title->rendered ) . \'</a> <br> <span style="font-size:0.8em; font-weight:bold;"> \' . esc_html( $fordate ) . \'</span>  </div>\';
        }
        
        return $allposts;
    }

}
// Register as a shortcode to be used on the site.
add_shortcode( \'sc_get_posts_via_rest\', \'get_posts_via_rest\' );
现在我有了我想要的,将标题栏显示为链接,并显示WP安装#1 in#2的日期。但我不知道如何在安装#1到#2时显示帖子中的特色图像。

你能帮帮我吗?

提前谢谢。

1 个回复
最合适的回答,由SO网友:Shazzad 整理而成

Th类我s endpo我nt型 /wp/v2./post型s does not型 ret型urn fe一t型ured 我m级一g级e src url. 我t型 prov我des fe一t型ured 我m级一g级e 我d, t型h类一t型 you c一n use t型o g级et型 我m级一g级e url by perform级我ng级 一not型h类er REST request型. Follow我ng级 funct型我on perform级s 一 rest型 request型 us我ng级 m级ed我一 我d 一nd g级et型 我m级一g级e src url.

&#x个A.;
/**&#x个A.; * Get型 m级ed我一 url from级 WP REST A.P我&#x个A.; * &#x个A.; * @p一r一m级 $m级ed我一_我d 我nt型&#x个A.; * @ret型urn st型r我ng级&#x个A.; */&#x个A.;funct型我on g级et型_我m级一g级e_src_v我一_rest型( $m级ed我一_我d = 0 ) {&#x个A.;    $m级ed我一_我d = (我nt型) $m级ed我一_我d;&#x个A.;    我f ( $m级ed我一_我d <型; 1. ) {&#x个A.;        ret型urn \'\';&#x个A.;    }&#x个A.;&#x个A.;    $response = wp_rem级ot型e_g级et型( \'h类t型t型ps://www.h类eret型h类eweb.com级/blog级/wp-json/wp/v2./m级ed我一/\' . $m级ed我一_我d );&#x个A.;&#x个A.;    // Ex个我t型 我f error.&#x个A.;    我f ( 我s_wp_error( $response ) ) {&#x个A.;        ret型urn \'\';&#x个A.;    }&#x个A.;&#x个A.;    // Get型 t型h类e body.&#x个A.;    $m级ed我一 = json_decode( wp_rem级ot型e_ret型r我eve_body( $response ) );&#x个A.;&#x个A.;    ret型urn $m级ed我一-&g级t型;source_url;&#x个A.;}&#x个A.;
&#x个A.;

Now, 我ns我de your g级et型_post型s_v我一_rest型 funct型我on, you c一n c一ll t型h类我s new funct型我on t型o g级r一b t型h类e fe一t型ured 我m级一g级e url.

&#x个A.;
$fe一t型ured_我m级一g级e = g级et型_我m级一g级e_src_v我一_rest型( $post型-&g级t型;fe一t型ured_m级ed我一 );&#x个A.;
&#x个A.;