"Почему get_post_meta() возвращает false для пользовательских метазначений сообщений после использования update_post_meta() в WordPress?"
Body :
Привет всем!
Я работаю над пользовательской конечной точкой REST API в WordPress, которая извлекает информацию о бизнесе из пользовательского типа сообщений ( бизнес). Я использую update_post_meta() для хранения некоторых пользовательских данных (например, номера телефона, адреса, ссылок на социальные сети и т. д.) для деловой публикации. Однако когда я пытаюсь получить сохраненные метаданные с помощью get_post_meta(), он продолжает возвращать false.
Вот код, который я использую для функции getBusinessInfo:
Код: Выделить всё
public function getBusinessInfo(\WP_REST_Request $request)
{
$bID = $request->get_param('bID'); // Get the business ID
// Fetch the business post based on the business ID
$business = get_posts(array(
'post_type' => 'business',
'post_status' => 'publish',
'p' => $bID,
));
if (!$business || empty($business)) {
return wp_send_json(array(
'message' => 'error',
'data' => array(
'code' => 404,
'message' => 'Business not found',
),
));
}
// Example hardcoded data to update post meta
$phone = '+263 123 456 7890';
$whatsapp = '+263 123 456 7890';
$email = 'business1@email.com';
$website = 'https://www.business1.com';
// Update post meta
update_post_meta($bID, 'phone', $phone);
update_post_meta($bID, 'whatsApp', $whatsapp);
update_post_meta($bID, 'email', $email);
update_post_meta($bID, 'website', $website);
// Retrieve and log the updated post meta
$updatedPhone = get_post_meta($bID, 'phone', true);
$updatedWhatsapp = get_post_meta($bID, 'whatsApp', true);
$updatedEmail = get_post_meta($bID, 'email', true);
$updatedWebsite = get_post_meta($bID, 'website', true);
error_log('Phone: ' . $updatedPhone); // This always returns `false`
// Return the business info (for example)
return wp_send_json(array(
'message' => 'success',
'data' => array(
'phone' => $updatedPhone ?: false,
'whatsApp' => $updatedWhatsapp ?: false,
'email' => $updatedEmail ?: false,
'website' => $updatedWebsite ?: false,
),
));
}
После вызова update_post_meta() я получаю значения с помощью get_post_meta(), но они всегда возвращают false.
Похоже, метаданные не сохраняются. правильно, хотя update_post_meta() возвращает истинное значение.
Подробнее здесь: https://stackoverflow.com/questions/791 ... -meta-data
Мобильная версия