在WordPress中为每个帖子存储唯一的字母数字ID时出错

时间:2018-11-27 16:35:18

标签: wordpress wordpress-theming

我想在创建时为每个帖子分配一个长度为6的唯一字母数字字符串。

我尝试了这段代码,但是在保存functions.php文件时收到以下错误:

“由于无法与站点进行通信以检查致命错误,因此更改了PHP更改。您将需要通过其他方式(例如,使用SFTP)上载PHP文件更改。”

function generateRandomAlphaNumString($length)
{   
$alphaNumCharSet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

for($i=0; $i<$length; $i++)
{
    $key .= $alphaNumCharSet[(mt_rand(0,(strlen($alphaNumCharSet)-1)))]; 
}
return $key;
}

function add_alphaNumPostId_custom_field($post_id)
{
$is_not_unique = true;
$alphaNumPostIdKey = 'alphaNumPostId';
 while($is_not_unique)  {
    $alphaNumPostId = generateRandomAlphaNumString(6);
    $is_not_unique = count(get_posts(array("posts_per_page"=1,"meta_query"=array("key"=$alphaNumPostIdKey,"value"=>$alphaNumPostId))))>0;
}

    add_post_meta($post_id, 'alphaNumPostId', $alphaNumPostId, true);

return true;
}

add_action('wp_insert_post', 'add_alphaNumPostId_custom_field');

0 个答案:

没有答案