Попытка получить свойство необъектного class-wp-query.php и link-template.php в wordpress

У меня есть два уведомления PHP в одном из моих проектов - "Попытка получить свойство не-объекта"

Я знаю, что это значит (более или менее), но проблема в том, что я не могу найти, какой элемент кода делает это уведомление... это сводит меня с ума...

  1. Попытка получить свойство не-объекта в /xxxxxxxxxxxx/wp-includes/class-wp-query.php в строке 3871

( На github находится здесь -> https://github.com/WordPress/WordPress/blob/master/wp-includes/class-wp-query.php#L4029 )

  1. Попытка получить свойство не-объекта в /xxxxxxxxxxxxxx/wp-includes/link-template.php в строке 643

( На github находится здесь -> https://github.com/WordPress/WordPress/blob/master/wp-includes/link-template.php#L673 )

В этом проекте я использовал:

  • Мой собственный шаблон
  • Плагин Woocommerce (последняя версия)
  • АКФ (последняя версия)
  • Yoast SEO (последняя версия)

Может быть, что-то не так с моим пользовательским запросом? Например, это то, что я использую:

' https://pastebin.com/YEBQAXgs '

Вопрос в следующем: как я могу найти/поймать это уведомление и определить, какую часть моего кода следует исправить?


person kanlukasz    schedule 28.04.2018    source источник
comment
Мое исследование, кажется, предполагает, что именно Yoast является неисправным кодом. Когда я отключаю Yoast, ошибка исчезает.   -  person Burgi    schedule 30.09.2019


Ответы (2)


Это происходит из функции Woocommerce wc_prevent_adjacent_posts_rel_link_wp_head, которая управляется хуком template_redirect.

Он вызывает is_singular('product'), который получает запрошенный объект, и, если запрос относится к каналу, он возвращает NULL и, следовательно, не является объектом.

person itinerant    schedule 26.06.2018

С тем, что вы опубликовали, это, вероятно, Симптом недопустимого запроса sql. Если вы попытаетесь подготовить плохой sql, он не сгенерирует объект оператора, что приведет к этой ошибке.

person Mason Stedman    schedule 28.04.2018