Как удалить значения wordpress post_meta_value

каждый

Я хотел бы удалить значение из postmeta в моей установке wordpress - и не полное метазначение, а только часть содержимого в нем.

например метаключ = тестовое метазначение = abba; танцы; Королева;

а "танцы" надо выкинуть. С помощью update_post_meta и delete_post_meta мне удается удалить только полное метазначение или метаключ. update_post_meta($id, 'тест', $танцы);delete_post_meta($id, 'тест', $танцы); не работает :-(

как удалить только часть?

лг да

2 ответа

Я думаю, это работает. Сначала я получаю значение предыдущего postmeta. Затем мы меняем его и, наконец, сохраняем в нашем посте. Порядок следующий:

      $test_meta_key = get_post_meta($post_id, 'meta_key');

$test_meta_key = str_replace('dancing', '', $test_meta_key);

update_post_meta($post_id, 'meta_key', $test_meta_key);

просто удалите танцующее слово из нужного метазначения. Вам не нужно сериализовать, если мета-значение является массивом, WordPress автоматически сделает это за вас.

      $post_id    = 1;
$metakey    = 'test'; 
$metavalue  = "abba; dancing; queen";
$metavalue  = "abba; queen"; // updated meta value
update_post_meta( $post_id, $metakey, $metavalue );

если $metavalue является массивом

      $metavalue = [ "abba", "dancing", "queen" ];
$metavalue = [ "abba", "queen" ]; // updated meta value
update_post_meta( $post_id, $metakey, $metavalue );
Другие вопросы по тегам