I’d like to dynamically generate the slug for a term. But I always end up with 2 entries in the database.
I came up this minimal working example:
When I run this code below, I end up with 2 entries in the database
e.g.
term_id name slug
284 test list-66603_1610659731
285 test list-29853_1610659732
function test_submit_list()
{
$slug = 'list-'. random_int(1,100000) .'_'. time();
$term = wp_insert_term(
'test',
'list',
array(
'description' => 'Slug: "'.$slug.'"',
'slug' => $slug,
'parent' => 25,
)
);
}
The function is called by an AJAX:
$("#list-form").on('submit', function(e) {
e.preventDefault();
var form = {
action: 'test_submit_list',
};
$.post(test_obj.ajax_url, form).always(function(data) {
console.log(data);
});
});
When I change the first line to $slug = 'list-'. 12345 .'_'. 11111111;
, I only get one entry.
Can someone please explain to me what is going on? This is driving me crazy.