Wie man automatisch einen zufälligen Slug erzeugt

Ich habe versucht, eine function zu erstellen, die einen zufälligen Slug generiert, wenn ein Post erstellt wird. Ich bin ein bisschen besorgt, dass die function nicht eindeutige Strings als Slugs generiert. Wie kann ich das lösen?

Die function sieht folgendermaßen aus:

add_filter('name_save_pre','unique_slug', 0); function random_string() { $length = 6; $characters = "0123456789abcdefghijklmnopqrstuvwxyz"; $string = ''; for ($p = 0; $p  get_row("SELECT ID FROM wp_post WHERE post_name = '" . $slug . "' && post_status = 'publish' && post_type = 'post'"); } function unique_slug($slug) { if($slug) return $slug; $random_slug = random_string(); if(!unique_id($random_slug)){ //what to do here? } else { return $random_slug; } } 

Solutions Collecting From Web of "Wie man automatisch einen zufälligen Slug erzeugt"

Verwenden Sie die function wp_unique_post_slug() . Erfinde das Rad nicht neu, dieses ist ziemlich schwierig.

Verwendung:

 $unique_slug = wp_unique_post_slug( $slug, $post_ID, $post_status, $post_type, $post_parent ); 

Dann können Sie testen, ob $slug === $unique_slug und einen neuen erzeugen, wenn der Test fehlschlägt.

Sie finden die function in wp-includes/post.php . Es endet mit einem Filter 'wp_unique_post_slug' , so dass Sie den Rückgabewert immer noch anpassen können, wenn Sie es nicht mögen.

Ich habe dieses Plugin gefunden, das den Trick machen sollte: http://wordpress.org/extend/plugins/wp-hashed-ids/