Hace unas semanas hablé sobre lo que eran “trabajos cron” en WordPress y más allá. Este tutorial sobre las “tareas programadas de WordPress” tiene la esperanza de darle una buena comprensión de algunas de las cosas que puede hacer con ellas. Hoy, por otro lado, nos centraremos en cómo usará WP_SCHEDULE_EVENT para hacerlos en realidad. Quiero decir, cubriremos una serie de ejemplos de Job Cron WordPress. En un nivel alto, significan que podremos comprender la función WP_SCHEDULE_EVENT y ver cómo podemos usar algunas otras funciones útiles para usar WP-Cron en un complemento de WordPress. También analizaremos brevemente el complemento WP Cron realmente útil para averiguar si/cuando se ejecutarán sus tareas programadas de WordPress. Vamos a eso.
Actualizando nuestra comprensión de WP Cron para complementos (y muchos más)

Antes de llegar a nuestro ejemplo de Cron WordPress, una mirada rápida. Llamamos a la clase general de “resolver la programación de funciones” en el espacio de la computadora como sobre “cron”. Es por eso que a menudo vemos que las personas se refieren al sistema de programación de WordPress como una “CHRON WP”, incluso si sus funciones miembros se refieren a “eventos programados”. Se trata de lo mismo: programar cosas que sucederán en un sitio de WordPress. Para hacer esto concretamente, aquí hay algunas cosas que usan wp_schedule_event en wpshout ahora mismo:
WordPress (básico) limpia bocetos automáticos de publicación que no deben mantenerse
Jetpack limpia sus transitorios (variables almacenadas temporalmente en caché) en un programa más agresivo que WordPress.
Transitorios de limpieza de WordPress (núcleo)
Yoast SEO ha programado algo (no estoy seguro de qué) llamado onpage_fetch para ejecutar el semanario plus realiza niños de repuesto en dropbox
Podría continuar, o llamar a una gran cantidad de otras cosas similares. Creo que te hace comenzar a pensar cuándo y por qué podrías querer llamar a wp_schedule_event. Entonces, pasemos a esto, cómo usa esa función y otros para programar la tarea que se ejecuta en WordPress.
El principal gancho Chron WordPress: WP_SCHEDULE_EVENT, por lo que primero comenzaremos a comprender cómo crear un “trabajo de WP Cron” entendiendo la firma de la función WP_SCHEDULE_EVENT. Muestra que: wp_schedule_event ($ timestamp, $ recurrence, $ gook, args); Entonces estos parámetros más detallados:
$ TimeStamp destente a ser la primera vez que desea que tenga lugar el evento. Entonces, el valor más común enviado aquí es la hora actual. Obtenga esto en la función PHP con Time ().
$ Recurrence es un valor que dice cuando desea ejecutar el evento. Por defecto, WordPress está esperando valores por hora, dos veces o diarios. Como apareceremos un poco, puede hacer que los eventos registrados wp_schedule_event se estén en un programa diferente de los tres, pero estos son, con mucho, los más comunes.
$ Hook será la función (nombre) que desea llamar a WordPress cuando el evento se esté ejecutando. Esta es una cadena como ‘Updraft_Backup’ donde su característica se llama updraft_backup.
$ Args es cualquier argumento (s) que su función $ Hook tendrá que ver cuando se les llame. Nunca lo he usado y no lo veremos en ningún ejemplo, pero es bueno saber que puedes pasarlos.
Haga que wp_schedule_event ejecute su función diariamente ahora que tenemos una idea de cómo llamar a wp_schedule_event, para ver que se usa en contexto para programar una función que hemos creado, llamada wpshout_do_ing, ejecute todos los días. En un complemento, podría verse así: registro_activation_hook (__file__, ‘wpshout_plogin_activation’); Function wpshout_plugin_activation () {if (wp_next_scheduled (‘wpshout_do_ting’)) {wp_schedule_event (time (), ‘wpshout_do_thing’); }} Ahora, puede ejecutar el código que llama wp_schedule_event de varias maneras. Pero uno de los mejores es vincularlo a un evento único, como activar el complemento. Eso es lo que hacemos aquí. Luego nos aseguramos de que un evento para nosotros ya no esté programado. Ingresaremos más detalles más tarde, pero esta es una buena práctica solo para asegurarnos de no llevar a cabo el evento varias veces diferente, porque alguien lo ha intentado, por ejemplo, su complemento y lo ha deshabilitado.
Limpie después de usted: WP_CLEAR_SCHEDULED_HOOK Si ha seguido la ruta de rootear su embarazo al complemento activado, es posible que desee asegurarse de que su embarazo no cause un error si el complemento está deshabilitado.Para hacer esto, puede eliminar el evento programado cuando deshabilite el complemento.Esto mostraría que: register_deataction_hook (__file__, ‘wpshout_plus_deaction’);Función wpshout_plugin_deactivation () {wp_clar_scheduled_hook (‘wpshout_do_ting’);} Como probablemente adivinó, WP_CLEAR_SCHEDULE_HOOK cancelará el registro $ Hook o el “Nombre del embarazo” que ha programado con una llamada a WP_SCHEDULE_EVENT.
Wp_schedule_event diariamente a una hora específica para asumir que su sitio está registrando el menor tráfico a las 3 de la mañana. Y entonces, no desea hacer una copia de seguridad cuando el complemento se activa inicialmente, sino en un punto. En este ejemplo de código wp_schedule_event, seguiremos las 3:00 en su servidor. Haría esto: wp_schedule_event (strutime (3am mañana ‘),’ diario ‘,’ wpshout_do_thing ‘); La función PHP Strutime significa “Haga esta cadena en un tiempo”. Por lo tanto, devuelve el mismo tipo de valor que el tiempo, pero nos permite usar una expresión más inglesa. Así que esta tarea se ejecutará primero a las 3:00 de mañana por la mañana y no ahora. Y luego, porque establecí $ frecuencia en ‘diariamente’, debe repetirse todos los días a las 3 de la mañana. La desventaja a considerar: si sus usuarios necesitaban/querían que esto sucediera de inmediato, querrá que otro sistema también lo haga por ellos. Que podría ser wp_schedule_single_event. Pero quiero cubrir otro ejemplo antes de llegar … wp_schedule_event cada minuto, por lo que WP-cron tiene algunos intervalos implícitos realmente útiles, pero “cada minuto” no es uno. Hay muchas razones para ello. En primer lugar, estos dos:
Correr al embarazo cada minuto puede agregar muchos gastos generales al servidor.
La ejecución de un embarazo cada minuto está en contradicción con la necesidad de visitas que hacen que el WP-Chron sea un poco confiable para los sitios de bajo tráfico. Hablé un poco más sobre esto en mi introducción a las tareas programadas de WordPress.
Dicho esto, puede haber razones por las que desea “cada minuto” u otro intervalo que WordPress no acepte para intervalos de cron en la caja. Si está en esta situación, este ejemplo de código debería ayudarlo. Primero debe declarar su intervalo: add_filter (‘cron_schedules’, ‘wpshout_add_cron_interval’); Function wpshout_add_cron_interval ($ schedules) {$ skedules [‘EveryMinute’] = Array (‘Interval’ => 60, // Time in Second ‘Display’ => ‘cada minuto’); Devolver $ horarios; } Entonces, aquí el gancho de filtro de WordPress cron_schedules transmite una serie del intervalo que conoce. Y agregamos a la matriz transmitida nuestro intervalo, en este caso lo llamamos Evertminute. Luego solo usamos wp_schedule_event, sabiendo que nuestro intervalo, cada minuto, existe (así como el stock diario):
wp_schedule_event (time (), ‘EveryMinute’, ‘wpshout_do_ting’); Este sistema es exactamente lo que busca hacer todo tipo de intervalos personalizados. Si eres un verdadero mono del caos, incluso podrías hacer esto (no lo recomiendo): add_filter (‘cron_schedules’, ‘wpshout_add_weird_cron_interval’); Function wpshout_add_weird_cron_interval ($ schedules) {$ skedules [‘wpshout_random’] = array (‘interval’ => rand (100, 99999), // tiempo en segundos ‘pantalla’ => intervalo aleatorio ‘); Devolver $ horarios; } Pero eso crearía el caos en sus programas Cron WordPress, por lo que realmente no lo recomiendo.
WP Cron no funciona: algunos preparativos conceptuales que he dicho y lo diré nuevamente: WP-cron no es un cron “verdadero”. Es necesario que su sitio reciba visitas que WordPress puede abordar las funciones que está programado. Con este fin, si el WP-chron no funciona de la manera que lo espera, es posible que deba “hacer el cron de WordPress en un verdadero cron”. Lo que parece está bien cubierto en este pequeño tutorial del sitio. Otros poderes, como ¿cómo programo una vez en WordPress? Hasta ahora he mencionado algunas de las principales funciones del WP Cron, pero quiero pasar rápidamente por los demás que pueda conocer o tener que saber más en profundidad. ¿Qué es wp_schedule_single_event? A veces, querrá que el evento o código programado se realicen una vez y “no ahora”. Entonces, ¿cómo se programan algo para ejecutar una vez en WordPress? Hay una función llamada wp_schedule_single_event para esto. Como se puede adivinar, le permite hacer un “trabajo cron de WordPress” que una vez es. Como podría adivinar, funciona bastante similar a WP_SCHEDULE_EVENT. wp_schedule_single_event se llama de la siguiente manera: wp_schedule_single_event (strutime (‘3am mañana’), ‘wpshout_do_thing’);
Notará que este ejemplo de código para wp_schedule_single_event parece familiar. ¿Que es diferente? Perdemos el segundo “intervalo de recurrencia” que verá en wp_schedule_event. Lo que tiene mucho sentido, porque eso _single_ en el nombre de la función parece bastante claro que un intervalo realmente no tiene sentido. Además, todo es bastante similar en los ejemplos del código wp_schedule_event y wp_schedule_single_event. Disable_wp_cron? Entonces, ¿supongamos que quiere que WordPress nunca ejecute “Chron Works” WordPress cuando se carga la página? Aquí viene constanta disable_wp_cron. Lo que hace es permitirle ejecutar los trabajos de Chron del sitio mediante llamada directa (con curl, un navegador, etc.) en ejemplo.com/wp-clon.php para hacer tareas, pero no agregará nunca las cosas al cargar una página. Esto hará las respuestas a la página que podría haber sido capturada por una tarea de Chron mucho más rápida. Para usarlo, pondrá Define (‘Disable_wp_Cron’, true);

en wp-config.php. Pero no haga esto a menos que encuentre otra forma en que WordPress pueda hacer Chron funciona. Si solo deshabilita a Chron y no crea un trabajo de Chron real (en UNIX, etc.) para compensar las tareas programadas simplemente no se ejecutarán en su sitio de WordPress. Lo que wp_next_scheduled hace que mencioné anteriormente, pero recapitular el wp_next_scheduled es una forma en que podemos transmitir un nombre de WordPress y decirnos si la siguiente tarea se ejecutará o cuándo se ejecutará. Esto es muy útil para nosotros no programar un nuevo evento cuando ya hay otro programado para nosotros. Es por eso que nuestra forma ideal de usar wp_schedule_event es la siguiente: registro_activation_hook (__file__, ‘wpshout_plogin_activation’); Function wpshout_plugin_activation () {if (wp_next_scheduled (‘wpshout_do_ting’)) {wp_schedule_event (time (), ‘wpshout_do_thing’); }} (Porque el fragmento de código WP-chron anterior es el mismo que antes, no lo explicaré realmente). Aunque vale la pena señalar que WP_NEXT_SCHEDUD ser. Por lo tanto, también podría usarlo para hacer algo como esto: $ Seconds_until_Task_Will_Run = WP_NEXT_SCHEDULED (‘WPSHOUT_DO_TING’) – TIME ();
Ahora puede obtener un valor negativo si no está programado wpshout_do_ting.Pero veo algunas razones por las que lo harías.Nuevamente, lo que hará es obtener cuándo se programa la próxima tarea (en segundos a partir del 1 de enero de 1970) y luego reducir el tiempo actual.Más sobre WP_CLEAR_SCHEDULED_HOOK Al igual que anteriormente, ya hemos cubierto un poco WP_CLEAR_SCHEDULED_HOOK.En resumen, esta es la forma en que se asegura de haber limpiado después de usted y las tareas crónicas del complemento de WordPress.Entonces, el fragmento del código relevante anterior: registro_deataction_hook (__file__, ‘wpshout_plugin_deactalation’);Función wpshout_plugin_deactivation () {wp_clar_scheduled_hook (‘wpshout_do_ting’);
Wp cron en la práctica: wp_schedule_event ejemplos + más
Tags WP Cron en la práctica: WP
homefinance blog