0

我已将新建的 WordPress 站点从远程服务器的子目录移至根目录。我有几个自定义帖子类型,其中包含与之关联的元数据,包括图像元数据(即文件和 URL)。显然我必须从 URL 中删除子目录。我通过替换 SQL 查询来做到这一点。

现在 wordpress 无法识别元数据。当我编写以下代码时:

 $img = get_post_meta($post->ID,"mf_logo",true);
 var_dump($img);

我得到“布尔(假)”。我试图上传一张新图片,它正在显示。然后我通过 MySQL 手动更改了它的 URL,它再次未被识别。

需要注意的是,问题只发生在数组形式的元数据上,而不是“正常”元数据

您的帮助将不胜感激。

4

1 回答 1

1

使用元数据 ( update_post_meta, get_post_meta...) 时,数组将在 db 中自动序列化:

http://codex.wordpress.org/Function_Reference/update_post_meta

传递的数组将被序列化为字符串。

而且您不能简单地替换序列化数组中的字符串:

$data = array('key'=>'value');
echo serialize($data);

这将输出:a:1:{s:3:"key";s:5:"value";}

如果您只是用更短/更长的字符串替换, il 将破坏数据:

  • a:1:{s:3:"key";s:5:"replace";}是不正确的
  • a:1:{s:3:"key";s:7:"replace";}是正确的

你可以做一个批处理来处理这个。

但在此之前,你知道你可以让 wordpress 在它自己的目录中,并使其可以从根目录访问,而不会破坏链接吗?

看看这里:http ://codex.wordpress.org/Giving_WordPress_Its_Own_Directory#Using_a_pre-existing_subdirectory_install

于 2012-04-20T12:35:22.460 回答