2012-10-26 72 views
1

我在这里阅读了一些内容,但由于我是新手,我无法配置将自己的描述更改为什么,有人可以帮助我吗?非法字符串偏移量SEO

我得到这个错误:

Warning: Illegal string offset 'seodescription' in C:\xampp\htdocs\testdb1\wp-content\themes\prospect\functions\meta-box.php on line 37

线37看起来是这样的:

echo htmlspecialchars($data[ $meta_box[ 'name' ] ]); 

的是[]这是怎么回事反对我?如果是的话,我该如何改变它们并保留$ meta_box定义?

+2

警告指的是'seodescription',数组(但显然​​一个字符串),它的代码你包含不包含。涉及的实际线是什么? – Amber

+1

请以代码格式编写该行。 –

+0

唯一的seodescription是在第7行的meta box文件的开头还是smting,而不是37? – user1776351

回答

0

在下面的一行:

$data[ $meta_box[ 'name' ] ] 

它看起来像$data没有与键$meta_box['name']的值。确保你有正确的钥匙,并确保$data被定义和访问。

将上面的行替换为下面的行。

$data[$meta_box['seodescription']['name']]; 

当你print_r($ data)时你会得到什么?在第37行之前添加此打印语句。粘贴您的输出。

+1

这将导致一个'未定义的索引'警告,而不是'非法字符串索引' – VolkerK

+0

我真的很抱歉的愚蠢问题,但我如何检查值关键和它被定义?之前在metabox? – user1776351

+1

尝试回显$ meta_box ['name'],告诉我们你得到了什么,并尝试打印像print_r($ data)这样的$数据并告诉我们你得到了什么。 –

0

$的数据是不是当脚本到达线路37
要测试尝试像

if (!is_array($data)) { 
    echo '$data is not an array.'; 
    var_dump($data); 
    die; 
} 
else if (!isset($data[ $meta_box[ 'name' ] ])) { 
    echo '$data doesn\'t have a key ', $meta_box[ 'name' ]; 
    die; 
} 
else { 
    echo htmlspecialchars($data[ $meta_box[ 'name' ] ]); 
} 
+0

我在哪里准确添加? – user1776351

+0

而不是第37行 – VolkerK

相关问题