Dans wp-admin/includes/update-core.php
nous trouvons la ligne suivante:
add_action( '_core_updated_successfully', '_redirect_to_about_wordpress' );
Je souhaite supprimer cette action, j'ai donc créé un plugin mu avec le contenu suivant:
<?php # -*- coding: utf-8 -*-
add_action( '_core_updated_successfully', 't5_no_redirect_after_update', 0 );
function t5_no_redirect_after_update()
{
remove_action( '_core_updated_successfully', '_redirect_to_about_wordpress' );
}
Ça ne fait rien. Je suis toujours redirigé. Testé avec des installations à site unique et à sites multiples.
Je suppose que je manque quelque chose d'évident, comme d'habitude. :)
Comment faire mieux?
Mise à jour
Sur la base de la réponse de Brady, je construis une version très minimale:
<?php # -*- coding: utf-8 -*-
/* Plugin Name: T5 No redirect after core upgrade. */
add_action( '_core_updated_successfully', 't5_no_redirect_after_update', 0 );
function t5_no_redirect_after_update()
{
show_message( __('WordPress updated successfully') );
// Include admin-footer.php and exit
include(ABSPATH . 'wp-admin/admin-footer.php');
exit;
}
Nous voyons maintenant le message de réussite et aucune autre action n'est appelée. Vous pouvez télécharger le plugin sur GitHub . Utilisez-le comme plugin standard ou comme plugin MU.
redirect
upgrade
mu-plugins
fuxia
la source
la source
_core_updated_successfully
action mentionnée par @Brady semble absente de 3.8. * (> 3.7 ??). Des idées de remplacement aa?/wp-admin/includes/update-core.php
à la fin du fichier.Réponses:
Ne supprimez pas l'action mais ajoutez la vôtre avant celle-ci. Si vous supprimez l'action, vous n'obtiendrez jamais le message indiquant qu'elle a été correctement mise à niveau. Ici, vous pouvez fournir vos propres informations sur la marche à suivre.
Je sais que dans le chat, vous avez montré que vous aviez du mal à supprimer l'action, j'ai donc cherché une solution qui ne supprime pas l'action mais en ajoute une avant.
Le code ci-dessus est une copie de la fonction principale à laquelle il s'accroche
_core_updated_successfully
mais supprime la redirection et quelques messages.Comme vous pouvez le voir, il y a un
exit();
à la fin de la fonction, donc si vous accrochez cette fonction avant l'autre, la sortie devrait empêcher tout autre crochet de tirer.la source