如何从Wordpress帖子中提取图片并将其放入php代码

时间:2018-07-08 23:25:51

标签: php wordpress

我正在制作一个网页,其中有一个Wordpress正在提供新闻。

我想要最近索引(非wordpress)页面上的新闻标题,到目前为止,我已经能够提取每篇文章的标题,日期和链接,但是我不知道如何获取特色图片(或与此相关的任何帖子图片)。

我的代码是(我已经拿走了所有的类和东西):

<?php
     $url="https://www.navasdelpinar.com/noticias/wp-json/wp/v2/posts?_embed&per_page=1";
     $ch = curl_init();
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
     curl_setopt($ch, CURLOPT_URL,$url);
     $result=curl_exec($ch);
     $posts = json_decode($result, true);
     foreach ($posts as $post) { ?>
<?php } ?>

<div style="background-image: url(THIS IS WHERE THE IMAGE GOES)">
    <h1><?php echo $post['title']['rendered']; ?></h1>
    <p><?php echo date('j F, Y', strtotime($post['date']));?></p>
    <a href="<?php echo $post['link']; ?>">Read post</a>
</div>

有帮助吗?

2 个答案:

答案 0 :(得分:1)

如果您使用的是_embed,则可以像这样获得图像的源URL

array_name._embedded['wp:featuredmedia']['0'].source_url

类似,

<?php
     $url="https://www.navasdelpinar.com/noticias/wp-json/wp/v2/posts?_embed&per_page=1";
     $ch = curl_init();
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
     curl_setopt($ch, CURLOPT_URL,$url);
     $result=curl_exec($ch);
     $posts = json_decode($result, true);
     foreach ($posts as $post) { ?>
<?php } ?>

<div style="background-image: url(<?php $post._embedded['wp:featuredmedia']['0'].source_url ?>)">
    <h1><?php echo $post['title']['rendered']; ?></h1>
    <p><?php echo date('j F, Y', strtotime($post['date']));?></p>
    <a href="<?php echo $post['link']; ?>">Read post</a>
</div>

答案 1 :(得分:0)

知道了。

并且没有CURL:

<?php
$posts = json_decode(file_get_contents('https://www.navasdelpinar.com/noticias/wp-json/wp/v2/posts?_embed&per_page=1'), true);
    foreach ( $posts as $post ) {};
?>

媒体链接:

<?php echo $post[_embedded]['wp:featuredmedia']['0'][source_url]; ?> 

帖子标题:

<?php echo $post['title']['rendered']; ?>

日期:

<?php echo date('j M, Y', strtotime($post['date']));?>

POST链接:

<?php echo $post['link']; ?>