Je suis nouveau sur WP et je ne pouvais pas trouver cette solution par moi-même.
c'est ma fonction,
function explodetitletotags () { global $ post; $ title = $ post-> post_title; $ tags = explode ('', preg_replace ('/ [^\p {L} 0-9] /', '', $ title)); pour chaque balise $ en tant que $ tag { global $ post; $ thePostID = $ post-> ID; wp_add_post_tags ($ thePostID, $ tag); } } add_action ('publish_post', 'explodetitletotags');
La fonction fonctionne comme un charme sauf . Lorsque le titre de l'article dans la nouvelle page de l'article unique est mis à jour , le titre donne toujours la valeur précédente et non la dernière. fois j'ai tapé dans la boîte de titre de saisie.
Mon hypothèse est que, dans ma fonction, $title = $post->post_title;
appelle l'ancienne version du titre de Database au lieu de la nouvelle version, pourquoi ne pas simplement saisir le titre avant de l'envoyer à la base de données afin que le titre soit toujours à la dernière version, est-ce d'accord?
Si oui, existe-t-il un moyen d'intercepter/intercepter WordPress après l'enregistrement, avant qu'il ne soit enregistré dans la table wp_posts de la base de données?
Je suis désolé pour mon anglais, car ce n'est pas ma première langue et merci pour votre aide.
Pour définir le titre avant de l’enregistrer, connectez-vous à wp_insert_post_data
:
add_filter( 'wp_insert_post_data', 'wpse_75597_change_title' );
function wpse_75597_change_title( $post_data )
{
$post_data['post_title'] = 'SOMETHING VERY LOUD';
return $post_data;
}