Aggancia per l’aggiornamento post permalink

Vorrei sapere quale hook dovrei usare quando viene modificato il permalink / url di un post. Il mio objective è quello di ottenere il vecchio permalink e il nuovo permalink, così posso usarlo per il mio plugin. Grazie.

[EDIT] Voglio solo chiarire la domanda. Mi piacerebbe ottenere il vecchio e il nuovo url in uno scenario, ad esempio, quando un utente ne seleziona uno nell’area admin e modifica il permalink / url corrente (/ helloworld) in un nuovo permalink / url (/ helloworld_new) di il post selezionato. Vorrei ottenere l’URL completo del post in corso di modifica.

Solutions Collecting From Web of "Aggancia per l’aggiornamento post permalink"

Devi usare esattamente wp_insert_post_data . Questo contiene una serie di dati di post che verranno archiviati nel database dopo che WordPress ha eseguito la convalida / sanitizzazione.

 add_filter('wp_insert_post_data', 'wpse_wp_insert_post_data', 10, 2); function wpse_wp_insert_post_data($data, $post_attr) { // you get the post_name using $data['post_name']; // post id will not be present for the first insert // but you can check $post_attr['ID'] to be sure if an ID has been passed. // note: $data won't contain post id ever, only the $post_attr will have it // if you want to compare the name, you could use - if( isset($post_attr['post_name']) && !empty($post_attr['post_name']) && $post_attr['post_name'] != $data['post_name'] ) { // So here you can guess post name has been changed // note: $post_attr['post_name'] might come undefined or empty sometime. // and $data['post_name'] could also comes up empty, but it will be always defined } // you do not need to modify anything, so you should return it as it is return $data; } 

Spero che sia d’aiuto.

L’azione è update_option_permalink_structure .

L’esempio seguente funziona con questo hook.

 add_action( 'update_option_permalink_structure' , 'my_custom_function', 10, 2 ); function my_custom_function( $old_value, $new_value ) { // test var_dump( $old_value ); } 

L’hook in questo contesto è sempre update_option_{$option} [o update_option_{$option_name} (deprecato da WordPress 3.6)].

Anche related è pre_update_option_{$option} e un hook per la versione update_site_option_{$option} e pre_update_site_option_{$option} .