¿Estás buscando una forma de actualizar los permalinks una vez cada hora? Si bien probablemente exista un plugin para esto, hemos creado un fragmento de código rápido que puedes usar para actualizar los permalinks una vez por hora con un trabajo cron en WordPress.
Para confirmar que los permalinks se están actualizando, simplemente agrega un comentario justo antes de # END WordPress en el archivo .htaccess. Una vez que los permalinks se actualicen, el comentario desaparecerá.
Instrucciones:
Todo lo que tienes que hacer es agregar este código al archivo functions.php de tu tema o a un plugin específico del sitio:
// Flush permalinks every hour
add_action('my_hourly_event', 'do_this_hourly');
function my_activation() {
if ( !wp_next_scheduled( 'my_hourly_event' ) ) {
wp_schedule_event(time(), 'hourly', 'my_hourly_event');
}
}
add_action('wp', 'my_activation');
function do_this_hourly() {
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
Nota: Si es la primera vez que agregas fragmentos de código en WordPress, consulta nuestra guía sobre cómo agregar fragmentos de código correctamente en WordPress, para que no rompas accidentalmente tu sitio.
Si te gustó este fragmento de código, considera revisar nuestros otros artículos en el sitio como: 15 mejores plugins de marketing de contenidos y cómo crear un formulario de donación para WordPress.
Puedes usar WP Cli si tu hosting lo soporta para esto con una tarea cron:
`/ruta/a/wp rewrite flush –ruta/a/archivos/del/sitio/web/`
Para aquellos que necesitan actualizar los permalinks solo una vez al día, aquí tienes un fragmento de código que puedes usar:
// Vaciar permalinks una vez al día
add_action(‘my_daily_event’, ‘do_this_daily’);
function my_activation() {
if (!wp_next_scheduled(‘my_daily_event’)) {
wp_schedule_event(strtotime(‘midnight’), ‘daily’, ‘my_daily_event’);
}
}
add_action(‘wp’, ‘my_activation’);
function do_this_daily() {
flush_rewrite_rules();
}
Hola,
Esto es realmente útil, gracias.
Solo quería entender esto.
Cuando usas el hook llamado ‘wp’, que creo que no existe, ¿significa que la función ‘my_activation’ debería ejecutarse cuándo?
Estoy tratando de entender en qué punto se llamará esta función.
He agregado tu fragmento de código a mi archivo functions.php, y también he agregado un comentario a mi archivo .htaccess de la siguiente manera:
# PRUEBA para vaciado periódico de reglas de reescritura
# FIN WordPress
Sin embargo, mi comentario de prueba no desaparece, y me pregunto si este fragmento de código funciona realmente. ¿Me falta algo?
Es posible que el archivo no esté siendo sobrescrito por el fragmento. Quizás quieras contactar al anfitrión sobre esto.
¡Gracias, amigo!
Pero, ¿y si quiero hacerlo cada 10 minutos?
¡Gracias por esta explicación! Estaba buscando una manera de solucionar un problema en mi sitio web. Porque, casi una vez al día los permalinks se rompen, y tengo que volver a guardarlos para que vuelvan a funcionar. ¿Has tenido este problema? ¿Sabes qué podría estar causándolo?
Gracias de nuevo, y probaré esta solución en mi sitio web.
Lamentablemente, quizás quieras que un desarrollador lo revise.