如何在 WP REST API 响应中使用 wp:featuredmedia?
How to use wp:featuredmedia in WP REST API response?
我正在尝试从另一个 WordPress 站点获取博客文章,截至目前我已成功获取这些文章,我使用的是以下代码段:
$response = wp_remote_get( add_query_arg( array(
'per_page' => 1,
'categories' => 38
), 'https://www.remotesite.com/wp-json/wp/v2/posts?_embed' )
);
if( !is_wp_error( $response ) && $response['response']['code'] == 200 ) {
$remote_posts = json_decode( $response['body'] );
foreach( $remote_posts as $remote_post ) {
echo '<h2>'. $remote_post->title->rendered . '</h2>
<p>' . $remote_post->excerpt->rendered . '</p>';
}
}
使用上面的代码,我可以获取所有必需的详细信息、标题、摘录和特色图片。但是我很难找到如何从上述响应中获取特色图片 url。谁能告诉我如何使用响应中的 wp:featuredmedia。我在某处看到了下面的代码来获取特色图片 URL,但这对我没有帮助:
echo [your-data]._embedded['wp:featuredmedia']['0'].source_url
根据您的代码,可以像这样检索特色图片 URL:
$remote_post->_embedded->{'wp:featuredmedia'}[0]->source_url
不过,这是特色图片文件的全尺寸版本。
要获取特定缩略图大小的URL,您可以访问if from:
$remote_post->_embedded->{'wp:featuredmedia'}[0]->media_details->sizes
.. 这是 object
数据的 array
(当然除非您在 second 参数中使用 true
json_decode()
函数)。
默认情况下,可用的缩略图大小为:thumbnail
、medium
和 medium_large
。这是 medium
大小的示例:
$remote_post->_embedded->{'wp:featuredmedia'}[0]->media_details->sizes->medium->source_url
所以试试这个 foreach
:
foreach( $remote_posts as $remote_post ) {
$thumb_full_url = '';
$thumb_url = '';
if ( ! empty( $remote_post->featured_media ) && isset( $remote_post->_embedded ) ) {
$thumb_full_url = $remote_post->_embedded->{'wp:featuredmedia'}[0]->source_url;
$thumb_url = $remote_post->_embedded->{'wp:featuredmedia'}[0]->media_details->sizes->medium->source_url;
}
echo '<h2>'. $remote_post->title->rendered . '</h2>' .
'<p>' . $remote_post->excerpt->rendered . '</p>' .
'<p>' .
'Medium-sized thumbnail: ' . $thumb_url . '<br>' .
'Full-sized / source: ' . $thumb_full_url .
'</p>';
}
我正在尝试从另一个 WordPress 站点获取博客文章,截至目前我已成功获取这些文章,我使用的是以下代码段:
$response = wp_remote_get( add_query_arg( array(
'per_page' => 1,
'categories' => 38
), 'https://www.remotesite.com/wp-json/wp/v2/posts?_embed' )
);
if( !is_wp_error( $response ) && $response['response']['code'] == 200 ) {
$remote_posts = json_decode( $response['body'] );
foreach( $remote_posts as $remote_post ) {
echo '<h2>'. $remote_post->title->rendered . '</h2>
<p>' . $remote_post->excerpt->rendered . '</p>';
}
}
使用上面的代码,我可以获取所有必需的详细信息、标题、摘录和特色图片。但是我很难找到如何从上述响应中获取特色图片 url。谁能告诉我如何使用响应中的 wp:featuredmedia。我在某处看到了下面的代码来获取特色图片 URL,但这对我没有帮助:
echo [your-data]._embedded['wp:featuredmedia']['0'].source_url
根据您的代码,可以像这样检索特色图片 URL:
$remote_post->_embedded->{'wp:featuredmedia'}[0]->source_url
不过,这是特色图片文件的全尺寸版本。
要获取特定缩略图大小的URL,您可以访问if from:
$remote_post->_embedded->{'wp:featuredmedia'}[0]->media_details->sizes
.. 这是 object
数据的 array
(当然除非您在 second 参数中使用 true
json_decode()
函数)。
默认情况下,可用的缩略图大小为:thumbnail
、medium
和 medium_large
。这是 medium
大小的示例:
$remote_post->_embedded->{'wp:featuredmedia'}[0]->media_details->sizes->medium->source_url
所以试试这个 foreach
:
foreach( $remote_posts as $remote_post ) {
$thumb_full_url = '';
$thumb_url = '';
if ( ! empty( $remote_post->featured_media ) && isset( $remote_post->_embedded ) ) {
$thumb_full_url = $remote_post->_embedded->{'wp:featuredmedia'}[0]->source_url;
$thumb_url = $remote_post->_embedded->{'wp:featuredmedia'}[0]->media_details->sizes->medium->source_url;
}
echo '<h2>'. $remote_post->title->rendered . '</h2>' .
'<p>' . $remote_post->excerpt->rendered . '</p>' .
'<p>' .
'Medium-sized thumbnail: ' . $thumb_url . '<br>' .
'Full-sized / source: ' . $thumb_full_url .
'</p>';
}