Как вылечить ошибку php "Недопустимое смещение строки" в не поддерживаемом плагине WordPress
Я не программист php, так что для меня это так же ясно, как грязь.
Плагин Wordpress - WP Custom Search Версия: 0.3.26 Похоже, что это единственный удаленно используемый плагин, который позволит мне создать форму поиска в нескольких полях для боковой панели сайта. Это работает достаточно хорошо на моей установке WAMP на офисном ПК, но выдает ошибку ниже, когда я перенес ее на хостинг клиента на GoDaddy VPS.
Warning: Illegal string offset 'preset' in /home/clubfund/public_html/wp-content/plugins/wp-custom-fields-search/wp-custom-fields-search.php on line 401
Ошибка появляется для ссылки на этот раздел кода php.
function process_shortcode($atts,$content){
return $this->generate_from_tag(array("",$atts['preset']));
}
Большинство ответов на подобные вопросы относятся к путанице между значениями строк и массивов. Я не знаю, с чего начать, несмотря на то, что прочитал много похожих вопросов и решений. К сожалению, создатель плагина не может отвечать на вопросы. Я задавался вопросом, будет ли кто-нибудь здесь готов помочь. Спасибо заранее.
2 ответа
Вероятно, у вас разные уровни ошибок при производстве и разработке. Проблема, вероятно, также возникает локально, вы просто не видите ее регистрации. В любом случае, проблема в том, что ключ массива preset
не существует в $atts
массив.
Чтобы исправить это, вы можете сделать это прямо над обратной линией -
if(!array_key_exists($atts, "preset"))
{
$atts["preset"] = "";
}
Это установит значение в пустую строку, если оно еще не установлено.
Если вы не уверены, что на самом деле передается, вы можете сделать что-то вроде var_dump($atts)
или же gettype($atts)
чтобы увидеть, является ли тип даже массивом.
Не помещайте шорткод в свой шаблон, вставьте длинный код:
<?php if(function_exists('wp_custom_fields_search'))
wp_custom_fields_search(); ?>
У меня тоже была такая же проблема, и уже это решило ее.