Я работаю на веб-сайте каталога WordPress, когда я пытаюсь найти опцию поиска, я получаю эту ошибку:
Предупреждение: недопустимое смещение строки ‘field’ в /home/dalilouk/public_html/wp-content/themes/directory/header.php в строке 27
Предупреждение: недопустимое смещение строки ‘field’ в /home/dalilouk/public_html/wp-content/themes/directory/header.php в строке 33
И результат поиска всегда «ничего не найдено».
Это код header.php из строки 27:
<script type="text/javascript"> #line 27
jQuery(document).ready(function($) {
{ifset $themeOptions->search->searchCategoriesHierarchical}
var categories = [ {!$categoriesHierarchical} ];
{else}
var categories = [ #line 33
{foreach $categories as $cat}
{ value: {$cat->term_id}, label: {$cat->name} }{if !($iterator->last)},{/if}
{/foreach}
];
{/ifset}
{ifset $themeOptions->search->searchLocationsHierarchical}
var locations = [ {!$locationsHierarchical} ];
{else}
var locations = [
{foreach $locations as $loc}
{ value: {$loc->term_id}, label: {$loc->name} }{if !($iterator->last)},{/if}
{/foreach}
];
{/ifset}
var catInput = $( "#dir-searchinput-category" ),
catInputID = $( "#dir-searchinput-category-id" ),
locInput = $( "#dir-searchinput-location" ),
locInputID = $( "#dir-searchinput-location-id" );
catInput.autocomplete({
minLength: 0,
source: categories,
focus: function( event, ui ) {
var val = ui.item.label.replace(/&/g, "&");
val = val.replace(/ /g, " ").replace(/'/g, "'");
catInput.val( val );
return false;
},
select: function( event, ui ) {
var val = ui.item.label.replace(/&/g, "&");
val = val.replace(/ /g, " ").replace(/'/g, "'");
catInput.val( val );
catInputID.val( ui.item.value );
return false;
}
}).data( "ui-autocomplete" )._renderItem = function( ul, item ) {
return $( "<li>" )
.data( "item.autocomplete", item )
.append( "<a>" + item.label + "</a>" )
.appendTo( ul );
};
var catList = catInput.autocomplete( "widget" );
catList.niceScroll({ autohidemode: false });
catInput.click(function(){
catInput.val('');
catInputID.val('0');
catInput.autocomplete( "search", "" );
});
locInput.autocomplete({
minLength: 0,
source: locations,
focus: function( event, ui ) {
var val = ui.item.label.replace(/&/g, "&");
val = val.replace(/ /g, " ").replace(/'/g, "'");
locInput.val( val );
return false;
},
select: function( event, ui ) {
var val = ui.item.label.replace(/&/g, "&");
val = val.replace(/ /g, " ").replace(/'/g, "'");
locInput.val( val );
locInputID.val( ui.item.value );
return false;
}
}).data( "ui-autocomplete" )._renderItem = function( ul, item ) {
return $( "<li>" )
.data( "item.autocomplete", item )
.append( "<a>" + item.label + "</a>" )
.appendTo( ul );
};
var locList = locInput.autocomplete( "widget" );
locList.niceScroll({ autohidemode: false });
locInput.click(function(){
locInput.val('');
locInputID.val('0');
locInput.autocomplete( "search", "" );
});{ifset $_GET['dir-search']}
// fill inputs with search parameters
$('#dir-searchinput-text').val({$searchTerm});
catInputID.val({$_GET["categories"]});
for(var i=0;i<categories.length;i++){
if(categories[i].value == {$_GET["categories"]}) {
var val = categories[i].label.replace(/&/g, "&");
val = val.replace(/ /g, " ").replace(/'/g, "'");
catInput.val(val);
}
}
locInputID.val({$_GET["locations"]});
for(var i=0;i<locations.length;i++){
if(locations[i].value == {$_GET["locations"]}) {
var val = locations[i].label.replace(/&/g, "&");
val = val.replace(/ /g, " ").replace(/'/g, "'");
locInput.val(val);
}
}
{/ifset}
});
</script>
Пожалуйста, помогите мне исправить это.
Это не исходный код PHP. Вы только что открыли этот php в браузере, так что вы опубликовали вывод PHP-скрипта. Вы должны открыть настоящий .php файл в каком-то редакторе и показать нам исходный код 🙂
По вашему вопросу — это не ошибка, это предупреждение о вызове переменной, которая не установлена в какой-то момент. Таким образом, ваш скрипт все еще работает, но, возможно, ваша форма имеет неправильное имя поля для отправки, поэтому ваш php-скрипт не может узнать, какие данные вы хотите найти, потому что не может найти эту конкретную переменную.
Других решений пока нет …