1

wordpress サイトで e コマース プラグイン (Shopp) を更新しようとしたところ、無効にするように求められました。それをしたら、サイト全体を失いました。PHP ファイルからプラグインを有効にしようとしていますが、何をしているのかよくわからず、助けが必要です。PHPファイルを介して私のサイトでShoppプラグイン(またはそのプラグイン)を有効にする方法を知っている人はいますか?


これは、文字列を取得するために使用しているコードです。

    $unserialized = unserialize('a:14:{i:0;s:19:"akismet/akismet.php";i:1;s:37:"breadcrumbs-plus/breadcrumbs-plus.php";i:2;s:35:"googleanalytics/googleanalytics.php";i:3;s:45:"grunion-contact-form/grunion-contact-form.php";i:4;s:43:"image-caption-links/image-caption-links.php";i:5;s:29:"image-widget/image-widget.php";i:6;s:13:"rate/rate.php";i:7;s:33:"restore-jquery/restore-jquery.php";i:8;s:41:"shopp-cache-helper/shopp-cache-helper.php";i:9;s:47:"shopp-default-breadcrumb-extender-sdbe/sdbe.php";i:10;s:33:"shopp-improved/shopp-improved.php";i:11;s:19:"shuffle/shuffle.php";i:12;s:19:"vslider/vslider.php";i:13;s:41:"wordpress-importer/wordpress-importer.php";}');
array_push($unserialized, 'shopp/shopp.php');
$serialized = serialize($unserialize);
echo $serialized;
4

5 に答える 5

5

アクティブなプラグインは PHP ファイルに保存されません。データベースに保存されます。wp_optionsデータベースでテーブルを開きます。option_nameフィールドの値が である行を探しactive_pluginsます。この行で、 の値を探しますoption_value。アクティブなプラグインの情報を含むシリアル化された文字列が表示されます。

特に、シリアル化された文字列がどのようにフォーマットされるかをよく知らない場合は、文字列をすぐに編集するのは少し混乱するかもしれません。そのため、文字列をコピーして PHPunserialize()関数を使用すると、配列が返されることをお勧めします。その後array_push()、値がプラグイン ファイルへのパスである別の要素を追加するために使用します (例: "akismet/akismet.php"、あなたの場合は "shopp/shopp.php" かもしれません)。別の要素を追加したらserialize()、返された文字列を使用してコピーし、データベース内の古いシリアル化された文字列を置き換えます。

$unserialized = unserialize('...');
array_push($unserialized, 'shopp/shopp.php');
$serialized = serialize($unserialized);
echo $serialized; // Copy this output back into the database
于 2012-04-17T15:32:35.920 に答える
2

このサイトには、プラグインをプログラムでアクティブ化および非アクティブ化する方法に関する詳細が記載されています。ここにスニペットがあります:

function toggle_plugin() {

    // Full path to WordPress from the root
    $wordpress_path = '/full/path/to/wordpress/';

    // Absolute path to plugins dir
    $plugin_path = $wordpress_path.'wp-content/plugins/';

    // Absolute path to your specific plugin
    $my_plugin = $plugin_path.'my_plugin/my_plugin.php';

    // Check to see if plugin is already active
    if(is_plugin_active($my_plugin)) {

        // Deactivate plugin
        // Note that deactivate_plugins() will also take an
        // array of plugin paths as a parameter instead of
        // just a single string.
        deactivate_plugins($my_plugin);
    }
    else {

        // Activate plugin
        activate_plugin($my_plugin);
    }
} 
于 2012-04-17T15:34:11.410 に答える
1

プラグインの動作がおかしい人向け

プラグインの非アクティブ化、アクティブ化、インストール、更新後にロックアウトされた場合に、サイトへのアクセスを回復する最も簡単な方法は次のとおりです。

  • ウェブホストの管理パネル (Cpanel、DirectAdmin) に移動します。
  • ファイルに移動 (ファイルマネージャー)
  • //wp-content/ に移動し、"plugins" フォルダーの名前を別の名前 ("plugins_off" など) に変更します

  • WP 管理者に移動します。再びアクセスできますが、プラグインは表示されません。

  • ウェブホストの管理パネルに戻り、「plugins_off」の名前を「plugins」に戻します。

これで、プラグインはすべて WP-admin に再びリストされますが、すべて無効になります。そこから取ってください。

PHP コードを追加する必要はありません。

于 2015-05-26T10:32:42.040 に答える
1

RST が書いたように: プラグインを非アクティブ化した後にクラッシュしたサイトを復元するためのコーディングは必要ありません。他のプラグインが非アクティブ化されたプラグイン (WooCommerce など) に依存していたため、サイトがクラッシュしたのには十分な理由があります。

サイトを復元して WP 管理者にアクセスする最も簡単な方法は、プラグイン フォルダーの名前を変更し、ページを更新し、戻ってフォルダーの名前を「プラグイン」に戻してから、もう一度更新することです。すべてのプラグインは以前のように戻りますが、それらはすべて非アクティブ化されています。あとは、それらを再度有効にするだけです。他に何もクラッシュしないことを確認するために、1つずつ実行します。

于 2016-11-08T04:50:58.543 に答える