个性化阅读
专注于IT技术分析

WordPress中的随机永久链接键

我想为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缩短器或重定向方法。

任何想法都欢迎!


#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()- ikes需注意名称间隔。 WordPress已使用此功能名称


#2


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

。=用于连接字符串。


#3


使用Mwayi答案的正确方法是使用过滤器wp_unique_post_slug, 因为函数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;
}

#4


对于SEO, 你最好使子弹尽可能有意义。不要将永久链接更改为随机序列。使用此插件, 你仍然可以使用http://example.com/raNd0m永久链接在社交网络中共享或从你的站点中获取图像。

这样你既可以赢得SEO, 也可以赢得短链接


我使用http://ijassar.info/underrated撰写了有关此特定主题的文章

赞(0)
未经允许不得转载:srcmini » WordPress中的随机永久链接键

评论 抢沙发

评论前必须登录!