在WordPress随机永久密钥(Random permalink key in wordpress

2019-07-30 17:35发布

我想为每一个新的岗位在WordPress像自定义固定链接: http://mysite.com/x5Kvy6 (如bit.ly)。

我想这一点剧本,但它仅增加了5位数字在固定链接文章标题。

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缩短器或重定向方式。

任何想法是值得欢迎的!

Answer 1:

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() -亚克西提防名间距。 WordPress的已使用此函数名



Answer 2:

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

=为字符串的concat。



Answer 3:

使用正确的方法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;
}


Answer 4:

对于SEO,你最好不要让蛞蝓尽可能为有意义,即。 不要将固定链接更改为随机序列。 使用这个插件 ,你仍然可以使用http://example.com/raNd0m永久从您的网站共享的目的在社交网络或图像。

这样,您就同时赢得SEOshortlinks


我用http://ijassar.info/underrated写一篇关于这个具体问题职位



文章来源: Random permalink key in wordpress