J'ai des métadonnées sur ma page d'édition post qui enregistre parfaitement en utilisant le hook et la fonction ci-dessous:
add_action('save_post', 'save_meta_data');
function save_meta_data($post_id){
if(isset($_POST['target_url'])) {
update_post_meta($post_id, 'target_url', $_POST['target_url']);
}
};
Cependant, la même logique ne parvient pas à enregistrer les métadonnées avant une publication est supprimée, ce à quoi sert ce crochet (pensai-je).
add_action('wp_trash_post', 'save_meta_data');
function save_meta_data($post_id){
if(isset($_POST['target_url'])) {
update_post_meta($post_id, 'target_url', $_POST['target_url']);
}
};
Dans le second cas, il semble que tout le tableau $ _POST soit vide, mais je sais que la fonction est activée.
Une bonne âme pourrait-elle indiquer ce que je fais de mal et quelle est la bonne façon de le faire?
Merci Ron
Les liens "Corbeille" de base dans la section "Modification rapide" de edit.php
et dans le formulaire "Avancé" de la méta-boîte "Publier" fonctionnent sur GET
et non pas POST
. À moins que vous n'ayez modifié le ou les formulaires, il n'y a pas de données POST
. Tout ce que vous avez, c'est l'identifiant du post.
Pour sauvegarder les données quand un article est supprimé, vous ne pourrez pas utiliser la fonctionnalité par défaut "supprimer/corbeille". Tu devras:
POST
save_post
peut faire la suppression réelle.De mémoire, je ne peux pas vous dire à quel point il sera difficile de modifier le formulaire, mais ce ne sera probablement pas simple. Les options AJAX sont probablement plus simples, mais peuvent être facilement désactivées en désactivant Javascript dans le navigateur.