Якщо я перейменую плагін (у його головному файлі php), чи все-таки отримуватиму повідомлення про оновлення?


17

Нещодавно я змушений редагувати основні файли плагіна. Я оновив заголовок згаданого плагіна, щоб вказати, що його відредаговано.

Моє запитання: чи плагін все ще отримає сповіщення про оновлення? Якщо так, я, ймовірно, відключуватимуть оновлення цього плагіна, щоб не забути хтось про мої оновлення та перезапис.

В ідеалі я хотів би побачити, чи плагін отримує оновлення, але не дозволяти їм відбуватися лише натисканням на оновлення. (його потрібно було б видалити та перевстановити, або подібне).


З цього питання я нещодавно опублікував звіт про помилки в WordPress Track: Резервне копіювання каталогу плагінів / тем. Я думаю, що просте автоматичне резервне копіювання всередині, але перед функцією автоматичного оновлення полегшить ситуацію для всіх. Я не бачу причин, чому цього не було зроблено, коли автоматичне оновлення було випущено вперше, а також того, чому воно не було зроблено тим часом, і чому цього не слід робити.
Андо

Відповіді:


17

Як говорить SickHippie і AFAIK, ви не можете мати обох. Я додаю відповідь з інформацією, яку я зібрав у цій стеці.


Вимкнути сповіщення про оновлення для окремих плагінів

Bainternet в коментарі:

Просто відкрийте файл плагіна та змініть номер версії на щось на зразок 9.9.9

Відповідь Хамедуллаха (видалення повідомлення про оновлення Акісмета):

function filter_plugin_updates( $value ) {
    unset( $value->response['akismet/akismet.php'] );
    return $value;
}
add_filter( 'site_transient_update_plugins', 'filter_plugin_updates' );

Що запускає сповіщення оновлення плагінів

Відповідь Отто:

API використовує досить складний механізм для порівняння плагінів із плагінами, про які він знає, але це основні речі, що перевіряються: URI плагіна, ім'я плагіну та плагін (ім'я каталогів, у якому використовується плагін)

Змініть будь-яке з них, і ви зменшите шанси на те, що він знайде збіг, але він все одно може отримати його, якщо, наприклад, два з них.

Інформація у readme.txt для цього не використовується. Використовується заголовок PHP-файла самого плагіна.


Альтернативний підхід 1

  • Змініть плагін, щоб перевірити оновлення у власному власному сховищі.
  • Вам доведеться стежити за оригінальними оновленнями плагінів, регулярно відвідуючи офіційний Repo або встановлюючи оригінал в іншій програмі WordPress.
  • Коли ви вирішите змінити свій плагін, потрібно оновити його, передайте його Repo, і ви отримаєте повідомлення
  • Підручник: http://wp.tutsplus.com/tutorials/plugins/a-guide-to-the-wordpress-http-api-automatic-plugin-updates/
  • У книзі « Професійні розробки плагінів WordPress» Бреда Вільямса, Ожа Річарда та Джастіна Тадлока є розділ з цього приводу. введіть тут опис зображення

Альтернативний підхід 2 випливав із коментарів

  • змінити ім'я плагіна, номер версії та ім’я каталогу
  • встановіть оригінальний плагін, але залиште його відключеним, щоб отримувати повідомлення про оновлення
  • додати спеціальне повідомлення до опису плагіна (або замінити оригінал)
  • видаліть дії плагіна (Активувати | Редагувати | Видалити) та встановіть прапорець для групових дій

введіть тут опис зображення

add_filter( 'all_plugins', 'wpse_56968_on_list_plugins' );
add_filter( 'plugin_action_links_akismet/akismet.php', 'wpse_56968_remove_plugin_actions', 10, 4 );
add_action( 'admin_head-plugins.php', 'wpse_56968_remove_plugin_checkbox' );

function wpse_56968_on_list_plugins( $plugins )
{
    $plugins['akismet/akismet.php']['Description'] = '<strong>*** NOTICE: PLUGIN ONLY TO CHECK UPDATES IN THE ORIGINAL ONE! ***</strong> ';// . $plugins['akismet/akismet.php']['Description'];
    return $plugins;
}

function wpse_56968_remove_plugin_actions( $actions, $plugin_file, $plugin_data, $context ) 
{
    unset( $actions['activate'], $actions['edit'], $actions['delete'] );
    return $actions; 
}

function wpse_56968_remove_plugin_checkbox()
{
    ?>
        <script type="text/javascript">
            jQuery(document).ready( function($) {
                $('tr#akismet th.check-column').html('&nbsp;')
            });     
        </script>
    <?php
}

Пов'язані основні квитки


Дивовижна відповідь! Можливо, я зміню ім'я плагіна, номер версії та ім’я каталогу, а потім встановлю оригінальний плагін, але залиште його відключеним, щоб я міг бачити, коли він оновлюється.
Зах Лісобей

1
@ZachL - Блискуче! Це повинно працювати чудово!
SickHippie

2
Ви також можете змінити оригінальний заголовок плагіна Descriptionта додати повідомлення, як-от:Description: ONLY FOR REFERENCE, DON'T ACTIVATE!...[rest of the description]
brasofilo

1
@ZachL - Додано повну другу альтернативу на основі цього коментаря :)
brasofilo

3

Ви не можете відключити оновлення, але не оновити сповіщення - вони пов'язані між собою.

Щоб вимкнути сповіщення взагалі, змініть ім'я папки, в якій знаходиться плагін.

Мій особистий метод - додати назву плагіна в головному plugin.phpфайлі 3 a , тому в моєму списку плагінів я бачу AAA/Plugin Name. Це ставить його у верхній частині списку для довідки та відображатиметься у списку плагінів та у списку оновлень. Це в основному особистий прапор, тому я знаю, щоб не оновлювати ці конкретні плагіни.


Дякуємо за відповідь. Щоб уточнити, ви хочете сказати, що перейменування плагіна НЕ зупиняє його сповіщення про оновлення?
Зах Лісобей

Що стосується вашого першого речення ... Я впевнений, що я міг би знайти якийсь спосіб досягти цього ефекту, можливо, за допомогою деяких підступних js просто видалити посилання з повідомлення.
Зах Лісобей

AFAIK, перейменування головного файла або заголовка додатка у цьому головному файлі не зупиняє сповіщення про оновлення. Я досить впевнений, що репозиторій плагінів працює на основі назви папки (поштовий індекс, завантажений з Repo, повинен мати те саме ім’я плюс номер версії). Для відключення оновлення є список плагінів та список оновлень, тому переконайтеся, що ваш JS працює в обох місцях (також поділіться, що JS може бути корисним).
SickHippie
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.