oi ricardo,
não entendi direito sua dúvida. O que vc quer dizer com “adicionar quantos campos desejar no FEED” ? Explica melhor.
Leo,,
Então Leo,
é o seguinte, eu tenho um site onde eu criei vários Custom Fields, porém eu notei que estes campos não são carregados dentro do Feed, eu preciso carregar estes CF dentro do Feed também, pois em outro site eu vou extrair estes dados.
vc se refere ao feed RSS?
o RSS tem um padrão dele, que nunca vai incluir os custom fields. Para saber mais sobre o padrão RSS veja:
http://cyber.law.harvard.edu/rss/rss.html
Se você quiser que seus custom fields apareçam no RSS, você tem que coloca-los de alguma maneira dentro do conteúdo do post, ou fazer alguma outra gambiarra criando um filtro na criação do RSS do wordPress e inserindo seus dados em algum lugar.
Leo,,
Blz Leo,
se eu encontrar algo ou um modo de fazer isso eu posto aqui, BLZ.
Abs,
Riccardo
Encontrei uma forma, sem eu precisar mexer no core do WP, basta adicionar criar uma página chamada Feed e associar ao arquivo com o nome custom-feed.php, dentro deste arquivo basta adicionar o seguinte código:
<?php
/*
Template Name: Custom Feed template
*/
$numposts = 10;
function livexp_rss_date( $timestamp = null ) {
$timestamp = ($timestamp==null) ? time() : $timestamp;
echo date(DATE_RSS, $timestamp);
}
function livexp_rss_text_limit($string, $length, $replacer = '...') {
$string = strip_tags($string);
if(strlen($string) > $length)
return (preg_match('/^(.*)\W.*$/', substr($string, 0, $length+1), $matches) ? $matches[1] : substr($string, 0, $length)) . $replacer;
return $string;
}
$posts = query_posts('showposts='.$numposts);
$lastpost = $numposts - 1;
echo '<?xml version="1.0" encoding="UTF-8"?>';
?>
<rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
>
<channel>
<title><?php bloginfo_rss('name'); wp_title_rss(); ?></title>
<link><?php bloginfo_rss('url') ?></link>
<description><?php bloginfo_rss('description') ?></description>
<lastBuildDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?></lastBuildDate>
<docs>http://backend.userland.com/rss092</docs>
<language><?php echo get_option('rss_language'); ?></language>
<?php do_action('rss_head'); ?>
<?php foreach ($posts as $post) { ?>
<item>
<title><?php echo get_the_title($post->ID); ?></title>
<link><?php echo get_permalink($post->ID); ?></link>
<description><?php echo '<![CDATA['.livexp_rss_text_limit($post->post_content, 500).'<p>Saiba mais: <a href="'.get_permalink($post->ID).'">'.get_the_title($post->ID).'</a></p>]]>'; ?></description>
<extra><![CDATA[<p><strong>Texto e formatação desejada:</strong> <?php echo get_post_meta($post->ID, "custom-field-personalizado", true); ?></p>]]></extra> <!-- É aqui que vai o código do Custom Field desejado ou desejados. //-->
<pubDate><?php livexp_rss_date( strtotime($post->post_date_gmt) ); ?></pubDate>
<guid><?php echo get_permalink($post->ID); ?></guid>
</item>
<?php } ?>
</channel>
</rss>
oi Ricardo,
Como vc viu, vc está colocando seus metadado dentro do conteúdo do post, como eu tinha dito que seria um jeito. E, nesse caso, tem um jeito ainda mais fácil de fazer isso, criando um filtro que adiciona seus metadados ao conteúdo quando for gerar o feed. Mais ou menos assim:
<?php
// no arquivo functions.php
add_filter('the_content', 'minha_funcao');
function minha_funcao($content) {
if (is_feed()) {
// pega os metadados
$meta = get_post_custom(get_the_ID());
// insere os metadados no fim do conteúdo.. aí vc pode colocar BRs e qq elemento html que quiser
$content .= $meta['meu_metadado'][0];</p>
}
return $content;
}
?>