A slug in WordPress is the part of the URL that references the blog title. For example, if the URL looks like example.com/2019/this-is-my-test-post, then this-is-my-test-post would be a slug. Typically a slug is all letters and numbers, with any other character being replaced by a dash.
The below code fragment is a simple JS function to reduce a blog title down to a slug – you may want to add some additional code to guarantee a certain slug length.
var generateSlug = function generateSlug(title) {
var allowable_characters = "abcdefghijklmnopqrstuvwxyz1234567890";
//Builds our own slug
title = title.trim().toLowerCase();
var title_array = title.split("");
var outbound_title = " ";
for ( var i = 0; i < title_array.length; i++) {
var title_char = title_array[i];
if ( allowable_characters.indexOf(title_char) != -1 ) {
outbound_title = outbound_title + title_char;
}
else if ( outbound_title.split("").pop() != "-" ) {
outbound_title = outbound_title + "-";
}
}
console.log("Generated slug: " + outbound_title);
return outbound_title.trim();
}//end generateSlug