Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jefferson Elias

Puxar imagem das Notícias via Feed

Recommended Posts

Olá Pessoal estou a alguns dias tentando descobrir como puxar as notícias de um site externo via feed e exibir em meu site.

 

Já achei como exibir o titulo, link, descrição e data mais ainda não sei como puxar a imagem do post!

 

alguem pode me ajudar nesse caso?

 

att: Jefferson

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui de uma maneira. com wordpress

Adiciona essa função no arquivo functions.php do tema do wordpress ela vai puxar as imagens do post.

 

// personalizar rss/feed
function inflar_custom_feed_content($content) {
   global $wp_query;
   $post_id = $wp_query->post->ID;
       
   if(is_feed()) {
      // pega o campo personalizado de nome image
      $image_url = get_post_meta($post_id, 'image', true);
       
      // caso vazio pega a imagem destacada
      if($image_url == ''){
         $image_url = get_the_post_thumbnail_src(get_the_post_thumbnail($post_id,'thumbnail'));
      }
       
      $content = '<a href="'.get_permalink($post_id).'" target="_blank"><img src="'.$image_url.'"/></a><p>'.$content.'<p>';
   }
  
   return $content;
}
add_filter('the_excerpt_rss', 'inflar_custom_feed_content'); //altera a versão resumida do post
add_filter('the_content', 'inflar_custom_feed_content'); // altera a versão completa do post
 
// extrair apenas a url do thumbnail
function get_the_post_thumbnail_src($img){
  return (preg_match('~\bsrc="([^"]++)"~', $img, $matches)) ? $matches[1] : '';
}

 

 

Agora vai o Legal esse código você adiciona onde quiser que mostre as noticias, vc pode personalizar da maneira que quiser com css

<?php
          $rss = new DOMDocument();
          $rss->load('http://equipecamisa10.com/feed');
          $feed = array();
          foreach ($rss->getElementsByTagName('item') as $node) {
          $item = array (
          'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
          'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
          'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
          'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
          );
          array_push($feed, $item);
          }
          $limit = 10;
          for($x=0;$x<$limit;$x++) {
          $title = str_replace(' & ', ' & ', $feed[$x]['title']);
          $link = $feed[$x]['link'];
          $description = $feed[$x]['desc'];
          $date = date('l F d, Y', strtotime($feed[$x]['date']));
          echo '<div class="feed-img">';
          echo $description;
          echo '<h1><strong><a href="'.$link.'" title="'.$title.'">'.$title.'</a></h1>';
          echo '<small><em>Posted on '.$date.'</em></small>';
          echo '</div>';
          }
          
          ?>

Usei esse css.

<style type="text/css">
.feed-img {
	width:300px;
	height:50px;
	margin:5px 0 5px 0;
}
.feed-img p {
	display:none;
}
.feed-img small {
	display:none;
}
.feed-img img {
	width:50px;
	height:50px;
	float:left;
	margin:5px 5px 7px 0;
}
.feed-img h1 a {
	float:left;
	font-size:13px;
	width:245px;
	height:50px;
	margin:5px 0 7px 0;
	font-weight:bold;
	border-bottom:1px dotted #CCCCCC;
}
</style>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Jefferson Elias,

Ótimo trabalho, obrigado por compartilhar. :)

Você sabe informar se dá pra puxar as imagens quando não tem imagem destacado configurado nos posts? Tipo puxar a primeira imagem do post por exemplo.

E será que teria como puxar de vários sites ao mesmo tempo?

Desde já agradeço se você ou alguém puder ajudar. ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Amigo tem essa função onde é possivel pegar a primeira imagem do Post do Wordpress.
da uma olhadinha. e tenta configurar no Feed.

function catch_that_image() {
global $post, $posts;
$first_img = ”;
ob_start();
ob_end_clean();
$output = preg_match_all(‘//i’, $post->post_content, $matches);
$first_img = $matches [1] [0];
if(empty($first_img)){ //defina uma imagem padrão
$first_img = “/images/default.jpg”;
}
return $first_img;
}



Espero ter ajudado.
Att:Jefferson Elias

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola .

 

De que forma posso apenas retornar os dados da figura de DESTAQUE em um FEED xml ?

A ideia e ter como resposta um arquivo xml padrao de feeds so que este padrao apresenta apenas as figuras que foram inseridas dentro do texto mas nao as figuras de Destaque !

 

Exemplo : O feed tem que ser no mesmo padrao deste link : http://sindnews.esy.es/feed/

 

Porem apresentando a figura de destaque.

 

Grato.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.