Поддержка → Обратная связь → Доработка function wp_get_translation_updates и list_translation_updates
Доработка function wp_get_translation_updates и list_translation_updates
-
Доработка будет хорошо работать, если вы будете обновлять запись о дате в mysql
в базу данных
INSERT INTO
wp_options
(option_id
,option_name
,option_value
,autoload
) VALUES
(NULL, ‘_site_transient_update_core_date’, ‘0’, »);
INSERT INTOwp_options
(option_id
,option_name
,option_value
,autoload
) VALUES
(NULL, ‘_site_transient_update_plugin_date’, ‘0’, »);
INSERT INTOwp_options
(option_id
,option_name
,option_value
,autoload
) VALUES
(NULL, ‘_site_transient_update_theme_date’, ‘0’, »);в wp-admin/update-core.php замените стандартную функцию list_translation_updates()
function list_translation_updates() { $updates = wp_get_translation_updates(); if ( ! $updates ) { if ( 'en_US' != get_locale() ) { echo '<h3>' . __( 'Translations' ) . '</h3>'; echo '<p>' . __( 'Your translations are all up to date.' ) . '</p>'; } return; } $form_action = 'update-core.php?action=do-translation-upgrade'; ?> <h3><?php _e( 'Translations' ); ?></h3> <form method="post" action="<?php echo esc_url( $form_action ); ?>" name="upgrade-translations" class="upgrade"> <p><?php for($i = 0; $i < count($updates); $i++) { echo '<a target="_blank" href="'.$updates[$i]->package.'">'.$updates[$i]->package.'</a><br />\nдата выхода<br />\n'.$updates[$i]->updated.'<br />\n'; } ?> </p> <?php wp_nonce_field( 'upgrade-translations' ); ?> <p><input class="button" type="submit" value="<?php esc_attr_e( 'Update Translations' ); ?>" name="upgrade" /></p> </form> <?php }
в wp-includes/update.php замените стандартную функцию wp_get_translation_updates()
function wp_get_translation_updates() { $updates = array(); $transients = array( 'update_core' => 'core', 'update_plugins' => 'plugin', 'update_themes' => 'theme' ); foreach ( $transients as $transient => $type ) { $get_transient = get_site_transient( $transient ); if ( empty( $get_transient->translations ) ) continue; for($i = 0; $i < count($transient->translations); $i++) { if ( get_option('_site_transient_'.$transient.'_date') != $get_transient->translations[$i]['updated'] ) foreach ( $get_transient->translations as $translation ) { $updates[] = (object) $translation; } } } return $updates; }
Если вам понравилась доработка, то установите мой плагин «Виджет для поиска от ofru.ru»
-
в wp-admin/update-core.php замените стандартную функцию
- Если вы хотите предложить улучшение для ядра WordPress, сделайте это в багтрекере (на английском и без рекламы своего плагина). Или хотя бы опишите суть изменений здесь, на русском и со скриншотами.
- Изменение в
wp_get_translation_updates()
приводит к ошибке:Notice: Trying to get property of non-object in wp-includes/update.php on line 503
Вы забыли заменить в этой строке
$transient
на$get_transient
. - Насколько я понимаю, вы предлагаете заменить строку «Некоторые из ваших переводов устарели» на список ZIP-архивов с датой выхода. В отличие от плагинов и тем, переводы обновляются все сразу, поэтому я не вижу принципиальной важности этих данных для пользователя.
- Предложение по изменению этой строки уже есть в багтрекере, пока было решено оставить её как есть.
исправленная версия
function list_translation_updates() { $updates = wp_get_translation_updates(); if ( ! $updates ) { if ( 'en_US' != get_locale() ) { echo '<h3>' . __( 'Translations' ) . '</h3>'; echo '<p>' . __( 'Your translations are all up to date.' ) . '</p>'; } return; } $form_action = 'update-core.php?action=do-translation-upgrade'; ?> <h3><?php _e( 'Translations' ); ?></h3> <form method="post" action="<?php echo esc_url( $form_action ); ?>" name="upgrade-translations" class="upgrade"> <p><?php for($i = 0; $i < count($updates); $i++) { echo '<a target="_blank" href="'.$updates[$i]->package.'">'.$updates[$i]->package.'</a><br />дата выхода<br />'.$updates[$i]->updated.'<br />'; } ?> </p> <?php wp_nonce_field( 'upgrade-translations' ); ?> <p><input class="button" type="submit" value="<?php esc_attr_e( 'Update Translations' ); ?>" name="upgrade" /></p> </form> <?php }
Суть проста, чтоб скачать вручную новой пакет и установить, и обойтись без функции scandir, некоторые хостинги выкл. так как она не безопасна
скрин
- Тема «Доработка function wp_get_translation_updates и list_translation_updates» закрыта для новых ответов.