2012-04-20 78 views
0

我已将新建的WordPress网站从远程服务器的子目录移至根目录。我有一些自定义帖子类型与元数据相关联,包括图像元数据(即文件& URL)。很明显,我必须从URL中删除子目录。我这样做了替换SQL查询。WordPress无法识别元数据

现在wordpress不能识别元数据。当我写下面的代码:

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

我得到“bool(false)”。我试图上传一个新的图像,它正在显示。然后我通过My​​SQL手动更改了它的URL,并且再次无法识别它。

重要的是要注意的是,问题只与元数据发生在阵列的形式,而不是与“正常”的元数据

你的帮助将是非常赞赏是很重要的。

+0

嗨Matanya,在那里你能解决这个...如果是的话你是怎么做到的呢? – MariaZ 2013-04-30 05:18:42

回答

1

当使用元数据(update_post_metaget_post_meta ...)阵列将被自动序列在分贝:

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

+0

感谢您的详细解答!如果我可能会问什么是批次?我是否必须手动检查所有数据并相应地更改长度? – Matanya 2012-04-20 12:40:47

+0

不是手动的,按*批*我的意思是做一个脚本,将为你做这个。仔细阅读我的答案,它应该是一个更好的选择。 – soju 2012-04-20 12:45:56