Jump to content
Elliot

При переводе сайта с php 5.6. на 7.2 возникла пока одна ошибка deprecated

Recommended Posts

Здравствуйте друзья!

Перевел сайт на php 7.2 и пока вижу только одну ошибку.

Код в котором ошибка, отключает проверку на обновления, благодаря ему, админка стала работать быстрее...

Подскажите, как решить проблему, гугл молчит(

Вот сам код

add_filter('pre_site_transient_update_core',create_function('$a', "return null;"));
wp_clear_scheduled_hook('wp_version_check');

if( is_admin() ){
	// отключим проверку обновлений при любом заходе в админку...
	remove_action( 'admin_init', '_maybe_update_core' );
	remove_action( 'admin_init', '_maybe_update_plugins' );
	remove_action( 'admin_init', '_maybe_update_themes' );

	// отключим проверку обновлений при заходе на специальную страницу в админке...
	remove_action( 'load-plugins.php', 'wp_update_plugins' );
	remove_action( 'load-themes.php', 'wp_update_themes' );

	// оставим принудительную проверку при заходе на страницу обновлений...
	//remove_action( 'load-update-core.php', 'wp_update_plugins' );
	remove_action( 'load-update-core.php', 'wp_update_themes' );

	// внутренняя страница админки "Update/Install Plugin" или "Update/Install Theme" - оставим не мешает...
	//remove_action( 'load-update.php', 'wp_update_plugins' );
	remove_action( 'load-update.php', 'wp_update_themes' );

	// событие крона не трогаем, через него будет проверяться наличие обновлений - тут все отлично!
	remove_action( 'wp_version_check', 'wp_version_check' );
	//remove_action( 'wp_update_plugins', 'wp_update_plugins' );
	remove_action( 'wp_update_themes', 'wp_update_themes' );

	/**
	 * отключим проверку необходимости обновить браузер в консоли - мы всегда юзаем топовые браузеры!
	 * эта проверка происходит раз в неделю...
	 * @see https://wp-kama.ru/function/wp_check_browser_version
	 */
	add_filter( 'pre_site_transient_browser_'. md5( $_SERVER['HTTP_USER_AGENT'] ), '__return_true' );
}

Ошибка в этом куске

add_filter('pre_site_transient_update_core',create_function('$a', "return null;"));

Заранее спасибо!

Share this post


Link to post
Share on other sites
add_filter('pre_site_transient_update_core',create_function('$a', "return null;"));

заменить на

add_filter('pre_site_transient_update_core', function($a) {return null;});

 

Share this post


Link to post
Share on other sites
10 часов назад, DevilStar сказал:

add_filter('pre_site_transient_update_core',create_function('$a', "return null;"));

заменить на


add_filter('pre_site_transient_update_core', function($a) {return null;});

 

DevilStar а вы не могли бы еще одну ошибку исправить?

А то гугл выдает сайты где эта ошибка...

Notice: Trying to get property of non-object in \wp-includes\class-wp-query.php on line 3871

Вот этот код:

	public function is_singular( $post_types = '' ) {
		if ( empty( $post_types ) || !$this->is_singular )
			return (bool) $this->is_singular;

		$post_obj = $this->get_queried_object();

		return in_array( $post_obj->post_type, (array) $post_types );
	}

Заранее большое спасибо ;)

Share this post


Link to post
Share on other sites
6 минут назад, Elliot сказал:

DevilStar а вы не могли бы еще одну ошибку исправить?

А Вы не могли бы принять более активное участие в жизни этого форума, а не только тогда, когда у вас с вордпрессом проблемы?

Share this post


Link to post
Share on other sites
3 минуты назад, petroff сказал:

А Вы не могли бы принять более активное участие в жизни этого форума, а не только тогда, когда у вас с вордпрессом проблемы?

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

Share this post


Link to post
Share on other sites

В первом случае решается более изящно:

add_filter('pre_site_transient_update_core', '__return_null');

В WP определены функции, которые возвращают часто используемые результаты (по названиям, думаю, понятно, что возвращают):
__return_empty_array()
__return_empty_string()
__return_false()
__return_true()
__return_zero()
 

Во втором случае, скорее всего вы вызываете функцию is_singular() слишком рано. Когда еще не определен queried_object (например, прицепившись к хуку 'init').

Share this post


Link to post
Share on other sites
В 26.01.2019 в 0:48 PM, chromov сказал:

В первом случае решается более изящно:


add_filter('pre_site_transient_update_core', '__return_null');

В WP определены функции, которые возвращают часто используемые результаты (по названиям, думаю, понятно, что возвращают):
__return_empty_array()
__return_empty_string()
__return_false()
__return_true()
__return_zero()
 

Во втором случае, скорее всего вы вызываете функцию is_singular() слишком рано. Когда еще не определен queried_object (например, прицепившись к хуку 'init').

Спасибо за ответ!

Сделал, ошибка пропала.

А во втором случае ошибка возникает при просмотре категории. И такая ошибка у многих, кто перешел на 7,2, но пока решить ее не получается(

Share this post


Link to post
Share on other sites
4 минуты назад, DevilStar сказал:

Это ж всего лишь notice. Оставьте только показ ошибок (error) и пользуйтесь сайтом спокойно.

Ну я так и сделал, но хотелось бы вылечить, ведь снятие симптома - это не лечение)

Share this post


Link to post
Share on other sites
14 часа назад, Elliot сказал:

А во втором случае ошибка возникает при просмотре категории. И такая ошибка у многих, кто перешел на 7,2, но пока решить ее не получается(

is_singular() в категории не должен вызывать такого нотиса (вообще в шаблонах он не должен вызывать проблем, потому что там объект wp_query уже определен). И мне кажется, что это не ошибка перехода на PHP 7.2. 

Нужно отдебажить правильно этот нотис, вывести backtrace.

Есть 2 варианта:

- поставить плагин Query Monitor, он показывает backtrace-ы всех ошибок, но он довольно весомый и только я одного нотиса его использовать не рационально

- в теме на stackoverflow описано как написать свой вывод backtrace-ов. Т.е. будет выведен не только нотис, а вся иерархия вызовов функций и подключения файлов до места вызова. 

Скиньте этот backtrace сюда, вместе посмотрим.

Share this post


Link to post
Share on other sites
7 часов назад, chromov сказал:

is_singular() в категории не должен вызывать такого нотиса (вообще в шаблонах он не должен вызывать проблем, потому что там объект wp_query уже определен). И мне кажется, что это не ошибка перехода на PHP 7.2. 

Нужно отдебажить правильно этот нотис, вывести backtrace.

Есть 2 варианта:

- поставить плагин Query Monitor, он показывает backtrace-ы всех ошибок, но он довольно весомый и только я одного нотиса его использовать не рационально

- в теме на stackoverflow описано как написать свой вывод backtrace-ов. Т.е. будет выведен не только нотис, а вся иерархия вызовов функций и подключения файлов до места вызова. 

Скиньте этот backtrace сюда, вместе посмотрим.

Я протупил, этот нотик при просмотре карточки товара...

Сейчас поставлю плагин и буду смотреть

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...