我创建了一个新的自定义帖子类型“工作”。我想添加为每个新职位发布生成的唯一字母数字值。
我该怎么做?我找不到解决方案,这就是为什么我要问这个问题。
有人可以帮忙吗?
答案 0 :(得分:0)
请参阅此处,它是有效的版本代码,
// function to save the randomString as custom field value
function generate_AlphanumericID( $post_id ) {
$postTypes = array('profile', 'article');
$postType = get_post_type( $post_id );
if (in_array( $postType, $postTypes ) ) {
$characters = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ-_~'!,";
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < 11; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
/**
* Now check here if the string is in the database
*/
$args = array(
'post_type' => array(
$postTypes
),
'meta_query' => array(
array(
'meta_key' => '_alphanumeric_id'
)
)
);
$posts = new WP_Query( $args );
$meta_values = '';
if( $posts->have_posts() ) {
while( $posts->have_posts() ) {
$posts->the_post();
$meta_values[] = get_post_meta( get_the_ID(), '_alphanumeric_id', true );
}
}
wp_reset_postdata();
if (in_array( $randomString, $meta_values )) {
// "Match found"
return generate_AlphanumericID;
} else {
// "Match not found"
add_post_meta($post_id, '_alphanumeric_id', $randomString);
return $randomString;
}
}
}
add_action('draft_to_publish', 'generate_AlphanumericID', 10, 3);
注意:
要将此密钥用作永久链接标记,我建议您使用此https://github.com/athlan/wordpress-custom-fields-permalink-plugin
答案 1 :(得分:0)
每个帖子都有一个ID。
此ID是一个数字,并且是唯一的,因此您可以使用get_the_ID()获得该作业的标识符。