Opened 4 years ago
#54343 new feature request
set custom name for metadata value in custom-fileds metabox select box
| Reported by: |
|
Owned by: | |
|---|---|---|---|
| Milestone: | Awaiting Review | Priority: | normal |
| Severity: | normal | Version: | 5.8.1 |
| Component: | General | Keywords: | |
| Focuses: | Cc: |
Description
I use postmeta_form_keys filter to add some extra custom metadata to custom-fileds metabox.
but i want to set name for metadata.
Beacuase i use persian language, it isnt good to set persian letter as metadata.
its better i can set a name and value for each metadata.
for example in postmeta_form_keys callback:
function filter_function_name_1552( $keys, $post ){
if($post->post_type == 'car') {
$keys['قیمت'] = 'regular_price';
}
return $keys;
}
that 'قیمت' is custom name to display in meta select option text and regular_price is meta key (option value to save and access)
i dont know this restrictions and how to handle it. but its my idea
in wp-admin/template.php line ~693
change $keys to Associative arrays (import every value as key too) to support submitted metadatas
$keys = $wpdb->get_col(
$wpdb->prepare(
"SELECT DISTINCT meta_key
FROM $wpdb->postmeta
WHERE meta_key NOT BETWEEN '_' AND '_z'
HAVING meta_key NOT LIKE %s
ORDER BY meta_key
LIMIT %d",
$wpdb->esc_like( '_' ) . '%',
$limit
)
);
foreach($keys as $index=>$key){
unset($keys[$index]);
$keys[$key] = $key;
}
and in same file line ~734
add $index and change $key with $index in foreach
foreach ( $keys as $index => $key ) {
if ( is_protected_meta( $key, 'post' ) || ! current_user_can( 'add_post_meta', $post->ID, $key ) ) {
continue;
}
echo "\n<option value='" . esc_attr( $key ) . "'>" . esc_html( $index ) . '</option>';
}
also i know should be change codes when get submitted metadata and i dont any idea for it.
tnx a lot