Respuestas:
Este mensaje es creado por W3_Total_Cache->in_plugin_update_message()
hooked a "in_plugin_update_message-$file"
in wp_plugin_update_row()
.
Hace algunos años cincuenta para analizar el archivo Léame y mostrar la información del registro de cambios, pero en general puede hacer eco de algunas cosas como con cualquier otro gancho.
Para aclarar el nombre del gancho de acción:
global $pagenow;
if ( 'plugins.php' === $pagenow )
{
// Better update message
$file = basename( __FILE__ );
$folder = basename( dirname( __FILE__ ) );
$hook = "in_plugin_update_message-{$folder}/{$file}";
add_action( $hook, 'your_update_message_cb', 20, 2 );
}
La función en sí tiene dos $variables
adjuntos: $plugins_data
& $r
, a los que puede acceder su complemento.
/**
* Displays an update message for plugin list screens.
* Shows only the version updates from the current until the newest version
*
* @param (array) $plugin_data
* @param (object) $r
* @return (string) $output
*/
function your_update_message_cb( $plugin_data, $r )
{
// readme contents
$data = file_get_contents( 'http://plugins.trac.wordpress.org/browser/YOUR_PLUGIN_FOLDER_NAME_IN_THE_OFFICIAL_REPO/trunk/readme.txt?format=txt' );
// assuming you've got a Changelog section
// @example == Changelog ==
$changelog = stristr( $data, '== Changelog ==' );
// assuming you've got a Screenshots section
// @example == Screenshots ==
$changelog = stristr( $changelog, '== Screenshots ==', true );
// only return for the current & later versions
$curr_ver = get_plugin_data('Version');
// assuming you use "= v" to prepend your version numbers
// @example = v0.2.1 =
$changelog = stristr( $changelog, "= v{$curr_ver}" );
// uncomment the next line to var_export $var contents for dev:
# echo '<pre>'.var_export( $plugin_data, false ).'<br />'.var_export( $r, false ).'</pre>';
// echo stuff....
$output = 'whatever you want to do';
return print $output;
}
Nota:
Este enfoque se puede encontrar en el complemento Comprobador de enlaces internos .
Adición:
plugin_basename(__FILE__)
se puede usar en lugar de las dos líneas anteriores. Además, verificar si la página actual es la página del complemento no es realmente necesario ya que la función solo será llamada por esa página de todos modos. El beneficio (muy pequeño) aún es que no tiene otra devolución de llamada adjunta. Como esta respuesta es bastante antigua, aunque este enfoque todavía funciona sin problemas, ahora verificará el objeto devuelto por get_current_screen()
.