Intereting Posts
Добавление кнопок в wp-admin / edit-comments Как ограничить админу от создания новых пользователей от добавления нового экрана пользователя на панели мониторинга только до одного домена? Отключить и подключить плагин с помощью кода Тема двадцать десять – как разместить разные заголовки на каждой странице Shortcode / WP_Query в контексте изменений в сообщениях Как я могу использовать wp_get_image_editor для изменения размера изображения get_author_posts_url () Не работает Автономная форма не публикуется в URL-адресе, когда заполняются поля формы (в противном случае это делает) Архив по типу персонализированного сообщения и настраиваемому дате WP_Query orderby не работает с meta_value_num и menu_order Использование стандартной функции поиска с пользовательским типом сообщения Как получить текущий тег из таксономии? Исправить htaccess для отображения страницы, а также передать параметры GET Как получить вход редактора TinyMCE при использовании в интерфейсе? Как сохранить загруженное изображение в настраиваемой панели параметров?

Замечание: Неопределенное свойство: WP_Query :: $ post

Я использую wp для сайта членства. Я использую страницы для входа пользователя в систему, управления сообщениями, редактирования профиля и т. Д.

Когда я применяю структуру permalink по умолчанию, я обнаружил, что режим отладки показывает это уведомление на всех страницах (а не на странице).

Notice: Undefined property: WP_Query::$post in /var/www/example/wp-includes/query.php on line 2986 Notice: Trying to get property of non-object in /var/www/example/wp-includes/query.php on line 3349 

Но когда я использую имя сообщения для структуры permalink, это уведомление исчезло.

Хотя кажется, это не серьезная проблема (не так ли?), Но я должен знать, что вызывает это предупреждение?

благодаря

Solutions Collecting From Web of "Замечание: Неопределенное свойство: WP_Query :: $ post"

Наконец, я нашел, что вызывает эту проблему, оказывается, это связано с моим крюком pre_get_post . Потому что я использую is_page для проверки конкретной страницы, что не подходит.

Вот что я сделал

 function check_page($wp_query){ if($wp_query->is_page(array('1','2','3')) ){ //do something here } return $wp_query; } add_action( 'pre_get_posts', 'check_page' ); 

Поэтому мое решение:

  function check_page($wp_query){ $pageidarray = array('1','2','3'); if($wp_query->is_page() && in_array($wp_query->query_vars['page_id'], $pageidarray) ){ //do something here } return $wp_query; } add_action( 'pre_get_posts', 'check_page' ); 

Задача решена.