プラグインの名前を(メインのphpファイルで)変更しても、更新通知は表示されますか?


17

最近、プラグインのコアファイルの編集を強制されました。プラグインのタイトルを更新して、編集されたことを示しました。

私の質問は、プラグインは引き続き更新通知を受け取りますか?その場合、誰かが私の更新を忘れて上書きするのを防ぐために、このプラグインの更新を無効にする可能性があります。

理想的には、プラグインが更新を取得するかどうかを確認したいのですが、更新をクリックするだけでは更新を許可しません。(アンインストールしてから再インストールする必要があります、または同様です)。


この問題について、私は最近、WordPress Track:プラグイン/テーマディレクトリのバックアップにバグレポートを投稿しました内部では自動更新機能の前に簡単な自動バックアップを行うと、すべての人にとって物事がずっと簡単になると思います。自動更新が最初にリリースされたときにこれが行われなかった理由も、その間も行われなかった理由も、行わないべき理由もわかりません。
安藤

回答:


17

SickHippieが言うように、私の知る限り、両方を持つことはできません。このStackで収集した情報に回答を追加します。


個々のプラグインの更新通知を無効にする

コメントのBainternet:

プラグインファイルを開き、バージョン番号を9.9.9などに変更するだけです

ハメデューラカーンの回答(Akismet更新通知の削除):

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

プラグイン更新アラートをトリガーするもの

オットーの答え:

APIはかなり精巧なメカニズムを使用して、プラグインを認識しているプラ​​グインと照合しますが、これらは主にチェック対象です:プラグインURI、プラグイン名、プラグインスラグ(プラグインがあるディレクトリ名)

それらのいずれかを変更すると、一致が見つかる可能性が低くなりますが、たとえば、2つが一致した場合でも一致する可能性があります。

readme.txtの情報はこれには使用されません。プラグインのPHPファイル自体のヘッダーが使用されます。


代替アプローチ1

  • プラグインを変更して、独自のカスタムリポジトリの更新を確認します。
  • オリジナルのプラグインの更新をフォローする必要があります。定期的に公式リポジトリにアクセスするか、他のWordPressインストールにオリジナルをインストールしてください。
  • 変更したプラグインを更新する必要があると判断したら、それをリポジトリにコミットすると通知が表示されます
  • チュートリアル:http : //wp.tutsplus.com/tutorials/plugins/a-guide-to-the-wordpress-http-api-automatic-plugin-updates/
  • Brad Williams、Ozh Richard、およびJustin Tadlock の著書Professional WordPress Plugin Developmentには、この問題に関する章があります。 ここに画像の説明を入力してください

コメントから抜粋した代替アプローチ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-このコメントに基づいて完全な2番目の選択肢を追加しました:)
brasofilo

3

更新を無効にすることはできませんが、通知を更新することはできません。これらは互いに関連付けられています。

通知を完全に無効にするには、プラグインが置かれているフォルダー名を変更します。

私の個人的な方法は、メインplugin.phpファイルのプラグインのタイトルの前に3 aを追加することなので、プラグインリストにはが表示されAAA/Plugin Nameます。これにより、参照用にリストの一番上に表示され、プラグインリストと更新リストに表示されます。基本的には個人的なフラグなので、これらの特定のプラグインを自動更新しないことを知っています。


回答ありがとうございます。明確にするために、プラグインの名前を変更しても更新通知が停止しないと言っていますか?
ザックリゾービー

あなたの最初の文については...おそらく通知からリンクを削除するためのいくつかの卑劣なjsで、この効果を達成する方法を見つけることができると確信しています。
ザックリゾービー

知る限り、プラグインのメインファイルまたはそのメインファイルのタイトルの名前を変更しても、更新通知は停止しません。プラグインリポジトリがフォルダー名に基づいてプルされることはかなり確信しています(Repoからダウンロードしたzipは同じ名前にバージョン番号が付いている必要があります)。更新を無効にするために、プラグインリストと更新リストがあるので、JSが両方の場所で起動していることを確認してください(また、そのJSを共有してください-役に立つかもしれません)。
-SickHippie
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.