Hacer una funcionalidad de notificación de actualización para mis temas

17

la pregunta es simple :) Estoy haciendo un tema que usaré en muchos sitios. Por lo tanto, no quiero ir a todo el sitio y ftp los archivos cada vez que soluciono un error o hago una actualización del tema.

¿Hay alguna manera de hacer un sistema de actualización como los complementos alojados en el directorio de complementos de WordPress?

Esperando tu respuesta. ¡Gracias!

Resuelto:

Gracias Chip Bennett por su excelente enlace. La biblioteca de actualización para temas ahora está disponible en ese sitio. Puede encontrarlo aquí: http://w-shadow.com/blog/2011/06/02/automatic-updates-for-commercial-themes/

Considere siempre la donación si ve algún trabajo excelente que esté disponible de forma gratuita.

Sisir
fuente
Use el plugin Update Checker! Funciona tanto para complementos como para temas. github.com/YahnisElsts/plugin-update-checker
transbetacism

Respuestas:

9

También puedes conectarte a la rutina de actualización principal. (Estoy buscando enlaces de tutoriales, pero mi Google-fu me falla esta mañana).

EDITAR:

Mira si este tutorial te ayuda . Explica cómo implementar actualizaciones automáticas para complementos privados / comerciales (es decir, no alojados en repositorios).

Chip Bennett
fuente
1
Creo que espre_set_site_transient_update_plugins
Wyck
¡Gracias! Revisé su enlace y los códigos de complementos no funcionaron, ¡pero solicité al tipo que modificara la biblioteca para los temas un par de días después, hizo uno! Y ahora está funcionando genial! Pondré el enlace en mi pregunta. ¡¡Gracias!!
Sisir
1
Aquí hay un tutorial para actualizaciones automáticas de temas también desde el mismo sitio: w-shadow.com/blog/2011/06/02/…
Jaroslav Klimčík
pre_set_site_transient_update_pluginsejecuta solo el tema activado en el sitio principal. todas las demás actualizaciones de temas personalizados no se verificarán, incluso si son sitios múltiples y se activaron otros temas personalizados en otros sitios.
vee
3

Una pregunta de interés! De hecho, creo que debería hacer un servicio para verificar la actualización. Como yourdomain.comn / api / update-check! ¡Entonces esto puede devolver XML o JSON o alguna información útil relacionada con la actualización, como la versión, la url del archivo de actualización (el archivo actualizado debe ser un archivo zip)!

En tu tema puedes tener:

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

Entonces, cuando detectó una actualización de la url anterior (yourdomain.comn / api / update-check), suponga que devuelve los datos JSO de la siguiente manera: {"versión": "1.2", "archivo": "theme.zip"}

¡Compara la versión para buscar nuevas actualizaciones! ¡Luego cambie al tema predeterminado con esta función http://codex.wordpress.org/Function_Reference/switch_theme (para que cuando los usuarios accedan al sitio, vean un sitio de trabajo)! ¡Luego, su código puede usar curl o incluso file_get_contents para descargar el archivo zip (theme.zip en este caso)! A continuación, elimine todos los archivos de su carpeta de temas, luego extraiga el archivo zip y copie su contenido en la carpeta de temas. ¡Creo que de esta manera debería funcionar!

¡Quizás quieras echar un vistazo a lo que hizo WordPress! Encontré que está en el archivo wp-admin / includes / update-core.php, línea 288, función update_core

kureikain
fuente
3
Básicamente esto, pero en lugar de usar curl o file_get, use la API HTTP de WordPress, codex.wordpress.org/HTTP_API
Wyck
¡Genial Wyck, no lo sabía;)!
kureikain
1
¡finalmente tuve tiempo para comenzar a investigar sobre esto! Para la versión actual del tema, puedo usar esta función codex.wordpress.org/Function_Reference/get_theme_data . Comenzaré a trabajar con el enfoque que usted indicó.
Sisir