Je cherche à changer mes slugs de manière dynamique pour qu'ils s'affichent avec les noms de mes termes. Pour cela, j'ai créé une option dans le panneau de l'administrateur qui devrait me permettre de démarrer le processus, mais je ne sais pas vraiment par où commencer.

Pour commencer, je pense que je vais devoir récupérer les taxonomies dans lesquelles je trouve tous les termes que je devrai changer de manière dynamique.

Quelqu'un aurait-il un exemple de code que je pourrais exploiter pour cette fonction que j'essaie de créer?

voici les taxonomies dans lesquels je vais devoir aller chercher mes termes pour modifier ces derniers dynamiquement:

Taxonomies : recipe_category, recipe_type, recipe_event, product_category

voici le code qui me permettra de démarrer le processus:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 
    <?php
add_action( 'admin_menu', 'slug_migrate_menu' );
function slug_migrate_menu() {
    add_submenu_page('edit.php?post_type=recipe', 'Migration des slugs', 'Migration des slugs', 'manage_options', 'slug-migrate', 'slug_migrate_page');
}
function slug_migrate_page() {
?>
<h1>Migration des slugs</h1>
<button id="migrateSlugBtn">Go !</button>
<div id="migrateSlugResult"></div>
<script>
jQuery('#migrateSlugBtn').click(function(e) {
    jQuery.post(
        '<?php echo admin_url( 'admin-ajax.php' ); ?>',
        {
            'action': 'slug_migrate',
        },
        function(response){
            jQuery('#migrateSlugResult').append(response);
        }
    );
});
</script>
<?php
}
add_action( 'wp_ajax_slug_migrate', 'slug_migrate' );
add_action( 'wp_ajax_nopriv_slug_migrate', 'slug_migrate' );
 
function slug_migrate( $taxonomy ) {
    // Taxonomies : recipe_category, recipe_type, recipe_event, product_category
    // Pour chaque term des taxonomies : Effectuer un sanitize_title() du name du term et l'afficher
 
 
              // begin of code
 
 
 
 
 
              // end of code
 
 
        add_filter( 'editable_slug', 'sanitize_slug' );
 
 
    die();
}