我想在创建时为每个帖子分配一个长度为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');