Uno de los problemas de publicar en un blog es que muchas veces necesitas estar “inspirado” para sacar contenido. Y claro, todos los días no tienen la misma energía, el mismo tiempo, o no encuentras la temática adecuada.
Algo que ayuda mucho es que se pueden programar las entradas con bastante facilidad. Esto está genial si funciona, pero llevábamos varios días con problemas en las programaciones.
Creíamos que era un problema de carga del servidor, que justo coincidía en los procesos de backup, pero después de varias pruebas lo descartamos. Más siendo un blog humilde que no tiene grandes cantidades de visitas.
El error que nos aparecía era “Programación perdida” y no tenía que ver con la versión de WordPress.
Así que nos pusimos a investigar y descubrimos un desarrollo en forma de plugin que te soluciona el problema y que ahora os enseñamos.
Missed Scheduled
El funcionamiento es bastante sencillo. Lo que hace es gestionar el Cron Virtual para que la programación no falle. Un gran trabajo.
Lo instaláis y olvidáis de configuraciones. Realmente bueno.
DESCARGA: http://wordpress.org/plugins/wp-missed-schedule/
FUNCIÓN:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
<?php /* Plugin Name: Missed Scheduled Plugin URI: http://arielbustillos.com/missed-schedule Description: Brings <code>Missed Schedule</code> posts back to life. Version: 1.0 Author: obus3000 Author URI: http://arielbustillos.com/ Support URI: http://arielbustillos.com/missed-schedule/ */ define('MISSEDSCHEDULED_DELAY', 15); // NUmber is in minutes, change it according to your needs function missed_schedule_init(){ global $wpdb; // The next hook disables internal cron jobs native in Wordpress. You can comment the line if breaks other plugins remove_action('publish_future_post', 'check_and_publish_future_post'); $last = get_option('missed_schedule', false); if(($last !== false) && ($last > (time() - (MISSEDSCHEDULED_DELAY * 60)))) return; // Update current time update_option('missed_schedule', time()); $missedIDs = $wpdb->get_col( "SELECT `ID` FROM `{$wpdb->posts}` ". "WHERE ( ". " ((`post_date` > 0 )&& (`post_date` <= CURRENT_TIMESTAMP())) OR ". " ((`post_date_gmt` > 0) && (`post_date_gmt` <= UTC_TIMESTAMP())) ". ") AND `post_status` = 'future'" ); if(!count($missedIDs)) return; foreach($missedIDs as $missedID){ if(!$missedID) continue; wp_publish_post($missedID); //Let's publish missed schedule posts } } add_action('init', 'missed_schedule_init', 0); function uninstall_missed_schedule(){ delete_option('missed_schedule'); } register_deactivation_hook(__FILE__, 'uninstall_missed_schedule'); ?> |
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?