J'ai un type de message personnalisé appelé transaction
et, dans l'écran de modification/publication du type de message, j'ai supprimé le champ du titre du message. Le titre de l'article est maintenant généré par la fonction ci-dessous, qui étiquette chaque article Transaction
suivi d'une chaîne unique, grâce à la fonction uniqid
PHP.
J'utilise cette fonction sur le filtre title_save_pre
, mais chaque fois que je mets à jour la publication, un nouveau numéro unique est généré pour le titre.
Comment modifier le code ci-dessous afin que le numéro unique du titre ne soit généré qu'une seule fois?
function transaction_title( $title ) {
$screen = get_current_screen();
$transaction_number = uniqid(); // unique number
if ( 'transaction' == $screen->post_type ) {
return 'Transaction '. $transaction_number;
} else {
return $title; // else return the normal title
}
}
add_filter( 'title_save_pre', 'transaction_title');
Mon objectif initial est de définir un indicateur de méta de publication comme celui-ci , mais je ne parviens pas à le combiner avec ma fonction. Il semble que le méta de publication ne soit mis à jour que lorsque j'utilise l'action transition_post_status
et non avec mon filtre title_save_pre
(dont j'ai besoin de changer le titre).
function transaction_title( $title )
{
if ( 'transaction' == get_current_screen()->post_type && '' == $title )
{
return 'Transaction '.uniqid();
}
// else return the normal title
else
{
return $title;
}
}
add_filter( 'title_save_pre', 'transaction_title' );
Avez-vous essayé d'utiliser wp_insert_post_data () ? Cette question peut également vous aider.