Tornando a funcionalidade de notificação de atualização para meus temas

17

a pergunta é simples :) Estou criando um tema que vou usar em muitos sites. Então, eu não quero ir a todo o site e enviar arquivos ftp toda vez que eu corrigir um bug ou fazer uma atualização de tema.

Existe alguma maneira de fazer um sistema de atualização como os plugins hospedados no diretório de plugins do wordpress.

Aguardamos a sua resposta. Obrigado!

Resolvido:

Agradeço a Chip Bennett pelo excelente link. A biblioteca de atualização de temas agora está disponível nesse site. Você pode encontrá-lo aqui: http://w-shadow.com/blog/2011/06/02/automatic-updates-for-commercial-themes/

Sempre considere a doação se vir um excelente trabalho disponibilizado gratuitamente.

Sisir
fonte
Use o Plugin Update Checker! Funciona para plugins e temas. github.com/YahnisElsts/plugin-update-checker
transbetacism

Respostas:

9

Você também pode se conectar à rotina principal de atualização. (Estou procurando links de tutoriais, mas meu Google-fu está falhando comigo esta manhã.)

EDITAR:

Veja se este tutorial ajuda . Ele explica como implementar atualizações automáticas para plug-ins particulares / comerciais (ou seja, não hospedados em repositórios).

Chip Bennett
fonte
11
Eu acho que épre_set_site_transient_update_plugins
Wyck
Obrigado! Eu passo através do link e os códigos do plug-in não funcionaram, mas peço ao cara que modifique a biblioteca para temas alguns dias depois, ele criou um! E agora está funcionando muito bem! Vou colocar o link na minha pergunta. Obrigado!!
Sisir
11
Aqui está o tutorial para atualizações automáticas de temas também do mesmo site: w-shadow.com/blog/2011/06/02/…
Jaroslav Klimčík
pre_set_site_transient_update_pluginsexecuta apenas o tema ativado no site principal. todas as outras atualizações de temas personalizados não serão verificadas, mesmo que sejam vários sites e ativem outro tema personalizado em outros sites.
vee
3

Uma questão de interesse! Na verdade, acho que você deve fazer um serviço para verificar a atualização! Como seudomínio.comn / api / update-check! Isso pode retornar XML ou JSON ou algumas informações úteis relacionadas à atualização, como versão, o URL do arquivo de atualização (o arquivo atualizado deve ser um arquivo zip)!

No seu tema, você pode ter:

    <?php define('OWN_THEME_VERSION', '1.1');

Portanto, quando você detectou uma atualização acima da url (seudominio.comn / api / update-check), suponha que ele retorne dados JSO da seguinte forma: {"version": "1.2", "file": "theme.zip"}

Você compara a versão para verificar se há nova atualização! Em seguida, mude para o tema padrão com esta função http://codex.wordpress.org/Function_Reference/switch_theme (para quando os usuários acessam o site, eles veem um site em funcionamento)! Em seguida, seu código pode usar curl ou file_get_contents para fazer o download do arquivo zip (neste caso, theme.zip)! Em seguida, você exclui todos os arquivos da sua pasta de temas, extrai o arquivo zip e copia seu conteúdo na pasta de temas! Eu acho que assim deve funcionar!

Você pode dar uma olhada no que o WordPress fez! Descobri que está no arquivo wp-admin / includes / update-core.php, linha 288, função update_core

kureikain
fonte
3
Basicamente isto, mas em vez de usar onda ou file_get usar a API do WordPress HTTP, codex.wordpress.org/HTTP_API
Wyck
Legal Wyck, eu não sabia disso;)!
Kureikain #
11
finalmente tive algum tempo para começar a pesquisar sobre isso! Para a versão atual do tema, posso usar esta função codex.wordpress.org/Function_Reference/get_theme_data . Começarei a trabalhar com a abordagem que você indicou.
Sisir 29/05