Как удалить значения 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 );