Comment puis-je modifier les données de publication avant qu'elles ne soient enregistrées?
-
-
Remarque: vous avez unemauvaise conception :-) 1. à chaquefois que lemessageestenregistré,cette chaîneest ajoutée.(si vousne supprimezpas leprécédent,vous obtenezbeaucoup de données "` Thispost was ... `" s 2. comme celle-ci devrait être stockée comme uneméta valeur dupost :-) BTW: `save_post`est appelé *** après *** les données ont été sauvegardées,donc *** après ***elles ont été sauvegardées dans labase de données (pas ce que vous voulez).Note: You have a bad design :-) 1. everytime post would be saved, this string would be appended. (if you don't delete the previous one, you get a lot's of "`This post was...`"s 2. data such this one should be stored as a meta value of the post :-) BTW: `save_post` is called ***after*** data was saved, therefore ***after*** it was saved to database (not what you want).
- 0
- 2017-01-20
- jave.web
-
5 réponses
- votes
-
- 2011-12-09
Lefiltre wp_insert_post_data peut lefaire:
add_filter( 'wp_insert_post_data' , 'filter_post_data' , '99', 2 ); function filter_post_data( $data , $postarr ) { // Change post title $data['post_title'] .= '_suffix'; return $data; }
The wp_insert_post_data filter can do that:
add_filter( 'wp_insert_post_data' , 'filter_post_data' , '99', 2 ); function filter_post_data( $data , $postarr ) { // Change post title $data['post_title'] .= '_suffix'; return $data; }
-
m'apermis d'aller dans labonne direction,merci.Jepense que vous devezen fait utiliser «add_action» au lieu de «add_filter».aussi vos `wpse35931_filter_post_data`et`filter_handler` sontincohérents ...got me going in the right direction, thanks. i think you actually need to use `add_action` though instead of `add_filter`. also your `wpse35931_filter_post_data` and `filter_handler` are incongruent...
- 2
- 2011-12-09
- cwd
-
C'est ** certainement ** unfiltre.Bien que lesfiltreset les actions soientbasés sur lamêmefonctionnalité,ce quipermet certains croisements.Cependant,si vous utilisez cela comme une action,vousne pourrez *pas * renvoyer les données qui supprimeraienttout lepoint.Vous souhaitez FILTRER les données,puis les renvoyer.It is **definitely** a filter. Though filters and actions are based on the same functionality which allows some crossover. If you use this as an action, however, you will *not* be able to return the data which would remove the whole point. You want to FILTER the data and then return it.
- 1
- 2016-05-13
- Jake
-
`wp_insert_post_data`fonctionne,maisest unpeu dépassépar ce que OP (etpeut-être d'autres) veulent accomplir.Une optionplus simple dans cette situationest `content_save_pre` comme recommandépar @drzaus.`wp_insert_post_data` works, but is a bit overpowered for what OP (and perhaps others) want to accomplish. A simpler option in this situation is `content_save_pre` as recommended by @drzaus.
- 2
- 2016-11-17
- rinogo
-
Documentation du développeurpour lefiltre `wp_insert_post_data`: https://developer.wordpress.org/reference/hooks/wp_insert_post_data/Developer docs for `wp_insert_post_data` filter: https://developer.wordpress.org/reference/hooks/wp_insert_post_data/
- 1
- 2017-01-20
- jave.web
-
Ce hookest-il appelé chaquefois que vous a) appelezmanuellement wp_insert_post () dans,parexemple,functions.php de votrethèmepourinsérer/mettre àjour un article OU b) chaquefois qu'unmessageestenregistrépartous lesmoyenspossibles (parexemple via lebackend,via lefrontend,d'unemanière ou d'une autre ...)?Does this hook get called whenever you a) manually call wp_insert_post() in, for example, functions.php of your theme to insert/update a post OR b) whenever a post is saved by any means possible (e.g. thru backend, thru frontend, somehow else...)?
- 0
- 2018-07-25
- Vadim H
-
- 2014-12-11
Utilisez lefiltre
content_save_pre
exactement commethe_content
- la différenceest qu'ilfonctionne lorsqu'unmessageestenregistré,plutôt que affiché.http://codex.wordpress.org/Plugin_API/Filter_Reference/content_save_pre
Use filter
content_save_pre
exactly likethe_content
-- the difference is that it operates when a post is saved, rather than displayed.http://codex.wordpress.org/Plugin_API/Filter_Reference/content_save_pre
-
- 2018-04-17
Vouspouvez également vérifier le hook
pre_post_update
add_action('pre_post_update', 'before_data_is_saved_function'); function before_data_is_saved_function($post_id) { }
You can also check for the hook
pre_post_update
add_action('pre_post_update', 'before_data_is_saved_function'); function before_data_is_saved_function($post_id) { }
-
Fonctionne-t-ilpour la création demessages?Does it work for post creation?
- 0
- 2020-05-14
- Jian Chen
-
- 2016-05-30
Ajoutez le code suivant authème actifpour remplacer
<shell>
par[shell]
avant d'enregistrer:add_filter('content_save_pre', 'my_sanitize_content', 10, 1); function my_sanitize_content($value) { return str_replace('<shell>', '[shell]', $value); }
Add the following code to the active theme to replace
<shell>
with[shell]
before saving:add_filter('content_save_pre', 'my_sanitize_content', 10, 1); function my_sanitize_content($value) { return str_replace('<shell>', '[shell]', $value); }
-
- 2011-12-09
Si vous souhaitez simplement ajouter quelque chose de similaire à lafin detous les articles,je vous suggère d'utiliser lefiltre
the_content
.function append_to_content( $content ) { global $post; return $content.'<br />This post was saved on '.$post->post_date; } add_filter( 'the_content', 'append_to_content' );
If you just want to add something similar at the end of all the posts, then I would suggest you use the
the_content
filter.function append_to_content( $content ) { global $post; return $content.'<br />This post was saved on '.$post->post_date; } add_filter( 'the_content', 'append_to_content' );
-
Mercimaisje souhaiteen faitmodifier les données avant qu'ellesne soientenregistrées dans labase de données.Thanks but I actually want to edit the data before it is saved in the database.
- 0
- 2011-12-09
- cwd
J'ai unpluginet j'aimeraispouvoirexécuter le contenu de l'article àtravers certainsfiltres avant qu'ilne soitenregistré dans labase de données. En regardant l ' api duplugin ,je vois que deux hooks qui semblent être utiles:
Le seulproblèmeest qu'il semble que
save_post
n'apasbesoin de renvoyer une variable,doncje ne saispas commentfiltrer le contenu,etwp_insert_post
semble documenté .Je voudraisfaire quelque chose comme ceci:
Je vaisfaire quelque chose deplus utile que d'ajouter un horodatage,à savoirexécuter desfiltres regex,mais c'est letypegénéral defiltre/action quej'essaie d'ajouter.
<❯Mise àjour
Veuilleznoter queje souhaiteintercepter les donnéesen cours de sauvegarde dans labase de données -pas lorsqu'elles sont affichées dans lemessage (parexemple:pasen ajoutant unfiltre à
the_content
)