如何从wordpress中的usermeta表中只删除用户元值(不是键)?

时间:2015-03-23 10:02:07

标签: php wordpress wordpress-plugin unset

我将多个图像存储在媒体库中,并将其id保存在wp_usermeta表中。我的metakey是'图像'和#279,280,281'中的元值。现在我从表中得到这样的图像:

<?php $images = get_the_author_meta( 'images', $user->ID );
echo $images; //output is '279,280,281'.
 $images = explode(',',$images);
 foreach($images as $img) {
?>
      <img src="<?=wp_get_attachment_url( $img );?>" width="100" height="100" />
      <a href="<?php  echo get_edit_user_link( $user->ID ); ?>&image_id=<?= $img;?    >">Delete</a>
  <?php } ?>

现在,我不会从wp_usermeta表中删除特定的id。所以,请帮我解决一下。我尝试这种类型的代码删除:

 if(isset($_REQUEST['image_id'])){
    $image_id = $_REQUEST['image_id'];
// delete_usermeta( $user->ID, $meta_value = $img );  
    if (($key = array_search($image_id, $images)) !== false) {
        unset($images[$key]);
    }   
    wp_delete_attachment($image_id);
    }

1 个答案:

答案 0 :(得分:1)

您可以使用get_user_meta获取所有图像ID,然后删除所需的图像ID并进行更新。像这样的东西

$ID_TO_REMOVE = 279;    
$images = get_user_meta( $user_id, 'images', TRUE ); 
    $images = explode(',',$images);
    foreach($images as $image){
       if((int)$image != $ID_TO_REMOVE){
         $new_images .= $image.','; 
       }
    }

    update_user_meta($user_id, 'images', $new_images);

我没有测试过这段代码,但它应该是这样的。