Je veux changer le slug d'une publication avec un champ personnalisé.
Par exemple, si le champ personnalisé est "mot clé", mon lien de publication deviendra:monsite.com/keyword.
Si le champ personnalisé est vide, je souhaite générer une clé aléatoire telle quemysite.com/xV5f7A.
Comment puis-je faire cela sans changer le noyau wordpress?
Toutes les idées sont les bienvenues! Merci.
Le slug est enregistré sur wp_posts tandis que les champs personnalisés sont sur wp_posts_meta. Si vous voulez le faire comme cela, vous pouvez utiliser un hook d’action sur save_post qui obtiendra la valeur des champs personnalisés et l’enregistrera sous le slug de publication.
Voici le code
add_action('save_post', 'set_slug');
function set_slug($post_id){
$new_slug = get_post_meta($post_id,'custom-slug', true);
$post_args = array(
'ID' => $post_id,
'post_name' => $new_slug,
);
wp_update_post($post_args);
}