Elliot

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

11 posts in this topic

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

Перевел сайт на 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;});

 

Elliot likes this

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').

Elliot and DevilStar like this

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

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

Elliot likes this

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 сюда, вместе посмотрим.

Elliot likes this

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.