
Outro dia, um amigo meu perguntou por que alguns artigos tinham um caráter tão técnico. Peço desculpas, é porque um dos objetivos iniciais deste site é armazenar macetes e dicas para mim mesmo:
organizar dicas, tutoriais e endereços para consulta posterior;
Portanto, aviso que este artigo interessa mais àqueles que gostam de programação. Aqueles que o lerem e não compreenderem, não se preocupem: é apenas um registro pessoal para futuras consultas e não contém nenhuma informação de uso geral.
Em 2008, escrevi um script que atualiza o campo de data dos links, para contornar o já conhecido problema com a exibição do blogroll por ordem de atualização no WordPress.
Recentemente, verifiquei que os script havia parado de funcionar. Como parece que as versões recentes do WordPress não têm mais a variável use_linksupdate
, aproveitei para adaptar o código às diferentes versões e formatos de feed, que armazenam a data em campos distintos:
global $wpdb; require_once(ABSPATH.'wp-config.php'); include_once(ABSPATH.'wp-includes/class-snoopy.php'); include_once(ABSPATH.'wp-includes/rss.php'); $link_rsses = $wpdb->get_col("SELECT link_rss FROM $wpdb->links WHERE link_rss <> ''"); if ($link_rsses) { foreach ($link_rsses as $rssurl) { $feed = fetch_rss($rssurl); if ($feed) { $pubdate = $feed->channel['pubdate']; // Netscape RSS 0.91 $lastbuilddate = $feed->channel['lastbuilddate']; // Netscape RSS 0.91 $updated = $feed->channel['updated']; // Atom 1.0 $items = array_slice($feed->items, 0, 1); foreach ($items as $item) { $item_pubdate = $item['pubdate']; // RSS 2.0 $item_dcdate = $item['dc']['date']; // RSS 2.0 Dublin Core $item_updated = $item['updated']; // Atom 1.0 } $last_update = max(strtotime($pubdate), strtotime($lastbuilddate), strtotime($updated), strtotime($item_pubdate), strtotime($item_dcdate), strtotime($item_updated)); $wpdb->query("UPDATE $wpdb->links SET link_updated = FROM_UNIXTIME($last_update) WHERE link_rss = '$rssurl'"); } } } |
Copyright © 2006-2021 jlcarneiro.com.
ZeLuiz, cabra bom!
Esse para eu compreender teria que ter uma aula presencial… Para fuçar teria que ter tempo, o que está raro ultimamente.
um abraço.
Infelizmente, terei que bloquear novos comentários porque, por alguma razão, este post atrai muito spam.