Como programar os posts do seu blog

Acredito que, nas últimas semanas, muitos internautas ficaram curiosos para saber como é possível “agendar posts no blog”, prevendo situações como a que eu estou passando agora: um longo período de inatividade. Particularmente, essa dúvida pintou pela primeira vez na minha cabeça em abril do ano passado, assim que migrei para a tecnologia Movable Type (se você usa blogger, weblogger, blig ou outro gratuito, certamente o restante do post será frustrante…).

Em busca de respostas, tive a orientação do mestre Fábio Sampaio, que me deu uma rápida aulinha: “MT é um publishing tool, que gera paginas estaticas – ao contrario de outros CMS em PHP/MySQL, que geram a página dinamicamente no instante do acesso, você é obrigado a regerar as pages índice sempre que publicar algo. A solução completa passaria por um script que seria executado todo dia automaticamente (via cron jobs, por exemplo), fazendo a geração da página somente com os posts até o dia atual”.

Traduzindo: o sistema não pode agendar posts, pois seria necessário alguém (ou um programa) para “clicar no publicar” todo dia.

Mas nem tudo está perdido: “existe um script em PHP que pode ser a solução para o que você deseja”, completou Fábio, indicando este endereço. Trata-se de um comandinho em PHP, que após instalado, faz com que o blog mostre apenas os posts publicados a partir da hora atual. Ou seja: se mudarmos a data do post, ele não aparece até o horário previsto!

A versão do comando PHP publicada no site é a seguinte:

<MTEntries>

<?

if (time() > strtotime ("<$MTEntryDate format="%B %e, %Y %I:%M%p"$>"))

{

?>

<!--- a seguir entram as tags normais do MT. Antes do "/MTEntries", adicione a próxima linha: -->

<? } ?>

</MTEntries>

Depois de mergulhar fundo na linguagem PHP, percebi que, na prática, o comando acima faz uma comparação entre a data e hora atual e a do post. Descobri ainda que a função strtotime reconhece apenas datas em inglês. Ou seja, dependendo do formato de data, a coisa não funcionaria bem no MMM. Assim sendo, fiz uma “alteração estúpida, porém funcional”:

<MTEntries>

<?

$hoje = date("Y-m-d H:i");
$post = "<$MTEntryDate format="%Y-%d-%e %H:%M"$>";
if ($hoje > $post)

{

?>

<!--- a seguir entram as tags normais do MT. Antes do "/MTEntries", adicione a próxima linha: -->

<? } ?>

</MTEntries>

Em tese, parece funcionar perfeitamente por aqui. Com exceção de alguns dados importantes: “tenha em mente que o fonte da página conterá todos os posts para o futuro, porém apenas aqueles até a data atual são mostrados no browser pela interferência do PHP. Outra falha da solução é o aparecimento desses posts do futuro na lista de resultados, caso alguém faça uma procura no blog com palavras que os mesmos contenham”. Realmente, quem fez isso por aqui quebrou a cara…

A idéia certamente vai ser aperfeiçoada para o ano que vem, quando provavelmente existirão plug-ins preparados para tal. Ou, de repente, simplesmente esqueço esta facilidade e ignoro solenemente a existência do blog nas férias.

Comentários em blogs: ainda existem? (5)

  1. Euzinha, como a Cacau, também não entendi nada.

    O Sabbath que vai curtir esse post, ainda comentamos dia desses, “como será que o Marmota programou isso tudo?”.

    Beijo no Fábio!!!

    Beijo,

  2. Heimmmmmm… É de comer?!?!?!?!
    Brincadeirinha!!!
    Eu entendi tudinho…
    …errado!
    :-)
    Falando sério: legal isso, eu não teria o dom. Só se fosse muito necessário para a minha sobrevivência (ãhmmmmm?!?!?!).
    Aiaiai…
    Beijos,

Vai comentar ou ficar apenas olhando?

Campos com * são obrigatórios. Relaxe: não vou montar um mailing com seus dados para vender na Praça da República.


*