Uma questão de interesse! Na verdade, acho que você deveria fazer um serviço para verificar a atualização! Como yourdomain.comn / api / update-check! Em seguida, isso pode retornar XML ou JSON ou algumas informações úteis relacionadas à atualização, como a versão, a 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');
Assim, quando você detectou uma atualização do URL acima (yourdomain.comn / api / update-check), presume que ela retorna os dados do JSO da seguinte forma:
{"version": "1.2", "file": "theme.zip"}
Você compara a versão para verificar se há nova atualização. Então mude para o tema padrão com esta função enlace (em ordem quando os usuários acessam o site, eles vêem um site de worlking)!
Em seguida, seu código pode usar curl ou até mesmo file_get_contents para baixar o arquivo zip (theme.zip, neste caso)!
Em seguida, você exclui todo o arquivo na pasta do seu tema, depois extrai o arquivo zip e copia seu conteúdo para a pasta do tema!
Eu acho que assim deveria funcionar!
Você pode dar uma olhada no que o WordPress fez! Eu encontrei no arquivo wp-admin / includes / update-core.php, linha 288, função update_core