Je veux exécuter une fonction, myfunction () [nom hypothétiquement], chaque fois qu'une page est mise à jour dans l'administrateur. La fonction ne modifie en rien le contenu enregistré. Elle exécute simplement une tâche non liée ailleurs.
J'ai lu que le hook post_updated
est bon à utiliser pour cela, mais je n'arrive pas à obtenir que ce code soit exécuté:
add_action('post_updated', 'myfunction');
function myfunction() {
// check if this is a page
$id = get_the_id();
if ( is_page($id) ) {
// do stuff here
}
}
Je suis sûr qu'il me manque quelque chose d'évident; dois-je passer/retourner des paramètres ($ post_ID, $ post_after, $ post_before, d'après ce que je récupère dans base de données Wordpress Hooks ) pour que cela fonctionne? Si je ne veux que l'ID, dois-je quand même rendre/retourner les deux autres?
Vous devriez pouvoir obtenir l'ID de la publication via la variable $_POST
.
EDIT:Peut-être que vous devriez essayer ceci avec l'action save_post
, comme si, mais save_post
fonctionnait parfois sur d'autres instances (c'est-à-dire. Brouillons enregistrés automatiquement). Vous souhaiterez donc effectuer d'autres vérifications. save_post
renverra également l'ID en tant que l'un des arguments de la fonction afin que vous l'ayez déjà à portée de main.
add_action('save_post', 'myfunction');
function myfunction( $id ) {
// verify if this is an auto save routine.
// If it is our form has not been submitted, so we dont want to do anything
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
return;
// check if this is a page
if ( 'page' == $_POST['post_type'] ) {
// Return nothing if the user can't edit this page
if ( !current_user_can( 'edit_page', $id ) )
return;
// do stuff here, we have verified this is a page and you can edit it
}
}
Vient de tester cela sur localhost, fonctionne bien pour moi.
Utilisé un peu de code à partir d'ici et vous devriez lire l'action save_post
si vous décidez de l'essayer!
get_the_ID () devrait fonctionner, je l'utilise dans un but très similaire.
Les crochets que je l'utilise sont
add_action('future_to_publish','123_total_calculator');
add_action('new_to_publish','123_total_calculator');
add_action('draft_to_publish','123_total_calculator');
add_action('publish_post','123_total_calculator');