Случайная клавиша permalink в wordpress

Я хочу иметь постоянную ссылку для каждого нового сообщения в WordPress, например: http://mysite.com/x5Kvy6 (например, bit.ly).

Я попробовал этот маленький скрипт, но он добавляет только 5-значные числа к заголовку сообщения в permalink.

function wp_unique_post_slug( $slug, $post_ID, $post_status, $post_type, $post_parent ) { if($slug!=""){ $random=rand(11111,99999); //I needed 5 digit random $slug .= "-" . $random; } return $slug; } 

Как я могу сделать случайный ключ вместо заголовка сообщения?

Я не изучал укороченные URL-адреса или методы перенаправления.

Любая идея приветствуется!

Solutions Collecting From Web of "Случайная клавиша permalink в wordpress"

 function wp_unique_post_slug($col,$table='wp_posts'){ global $wpdb; $alphabet = array_merge( range(0, 9), range('a','z') ); $already_exists = true; do { $guidchr = array(); for ($i=0; $i<32; $i++) $guidchr[] = $alphabet[array_rand( $alphabet )]; $guid = sprintf( "%s", implode("", array_slice($guidchr, 0, 12, true)) ); // check that GUID is unique $already_exists = (boolean) $wpdb->get_var(" SELECT COUNT($col) as the_amount FROM $table WHERE $col = '$guid' "); } while (true == $already_exists); return $guid; } 

Это можно оптимизировать несколькими способами.

Также в отношении этого wp_unique_post_slug() – yikes отслеживают расстояние между именами. WordPress уже использует это имя функции

 if($slug!=""){ $random=rand(11111,99999); //I needed 5 digit random $slug = $random; } 

. = для конкат строк.

Правильный способ использования ответа Mwayi – использовать фильтр wp_unique_post_slug , поскольку function wp_unique_post_slug() будет конфликтовать с собственной функцией WP. Внутри функции WP мы находим этот фильтр.

 add_filter( 'wp_unique_post_slug', 'unique_slug_so_11762070', 10, 6 ); function unique_slug_so_11762070( $slug, $post_ID, $post_status, $post_type, $post_parent, $original_slug ) { $new_slug = so_11762070_unique_post_slug('guid'); return $new_slug; } # From: https://stackoverflow.com/a/11762698 function so_11762070_unique_post_slug($col,$table='wp_posts'){ global $wpdb; $alphabet = array_merge( range(0, 9), range('a','z') ); $already_exists = true; do { $guidchr = array(); for ($i=0; $i<32; $i++) $guidchr[] = $alphabet[array_rand( $alphabet )]; $guid = sprintf( "%s", implode("", array_slice($guidchr, 0, 12, true)) ); // check that GUID is unique $already_exists = (boolean) $wpdb->get_var(" SELECT COUNT($col) as the_amount FROM $table WHERE $col = '$guid' "); } while (true == $already_exists); return $guid; } 

Для SEO лучше держать слизню как можно более значимой, т.е. не изменяйте постоянную ссылку на случайную последовательность. Используя этот плагин , вы по-прежнему можете использовать постоянную ссылку http://example.com/raNd0m для совместного использования в социальных сетях или изображениях с вашего сайта.

Таким образом, вы выигрываете как SEO, так и короткие ссылки


Я использовал http://ijassar.info/underrated, чтобы написать сообщение об этом конкретном предмете