WordPress Version: 6.2
//
// Post Meta.
//
/**
* Adds post meta data defined in the `$_POST` superglobal for a post with given ID.
*
* @since 1.2.0
*
* @param int $post_id
* @return int|bool
*/
function add_meta($post_id)
{
$post_id = (int) $post_id;
$metakeyselect = isset($_POST['metakeyselect']) ? wp_unslash(trim($_POST['metakeyselect'])) : '';
$metakeyinput = isset($_POST['metakeyinput']) ? wp_unslash(trim($_POST['metakeyinput'])) : '';
$metavalue = isset($_POST['metavalue']) ? $_POST['metavalue'] : '';
if (is_string($metavalue)) {
$metavalue = trim($metavalue);
}
if ('#NONE#' !== $metakeyselect && !empty($metakeyselect) || !empty($metakeyinput)) {
/*
* We have a key/value pair. If both the select and the input
* for the key have data, the input takes precedence.
*/
if ('#NONE#' !== $metakeyselect) {
$metakey = $metakeyselect;
}
if ($metakeyinput) {
$metakey = $metakeyinput;
// Default.
}
if (is_protected_meta($metakey, 'post') || !current_user_can('add_post_meta', $post_id, $metakey)) {
return false;
}
$metakey = wp_slash($metakey);
return add_post_meta($post_id, $metakey, $metavalue);
}
return false;
}