• 解決済 sasakiharu

    (@sasakiharu)


    WordPress初心者です。
    よろしくお願いします。

    プラグイン作成の勉強中で、SettingAPIを利用して、設定データをwp_optionsテーブルに追加するものを試作し、今度はプラグインアンインストール時にそれらを削除しようとしましたが、消えずに残ってしまいます。
    原因と対策を教えていただけませんでしょうか?

    [状況]
    ・WordPress ver4.2.4
    ・サブディレクトリ型マルチサイトでテスト
    ・ローカルサーバー(Xampp)利用
    ・プラグインはSettingAPI利用でwp_optionsへのデータ格納をphpMyAdminで確認
    ・アンインストール時のオプション削除は下記2種でテストも両方失敗(残る)
     (1) (SettingAPI利用の)プラグインディレクトリにuninstall.php作成
      記述内容)
     if( !defined( ‘ABSPATH’ ) && !defined( ‘WP_UNINSTALL_PLUGIN’ ) )
      exit();
     delete_site_option( ‘オプションキー名’ );

    (2) (SettingAPI利用の)プラグイン内にregister_uninstall_hookで処理記述
       記述内容)
       register_uninstall_hook( __FILE__, ‘my_uninstall_hook’ );
      function my_uninstall_hook() {
      delete_option( ‘オプションキー名’ );
       }
    以上 よろしくお願い致します。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック投稿者 sasakiharu

    (@sasakiharu)

    追記
    uninstall.phpでのテストの記述内容にdelete_site_option関数を記述していますが、delete_option関数で失敗したため「マルチサイトだとこちらになるのか?」と、試しに書き換えたもので、両方とも上手くいきませんでした。

    モデレーター Daisuke Takahashi

    (@extendwings)

    is_multisite()で判定して、サイトをswitch_to_blog()で切り替えながら、delete_option()してあげれば普通に消せます。

    コードは http://wordpress.stackexchange.com/questions/80350/uninstall-script-for-a-plugin-in-multisite とかを参考にしてください。(回答のコメント欄も参考になります。)

    トピック投稿者 sasakiharu

    (@sasakiharu)

    Daisuke Takahashi様

    ありがとうございます!
    初心者なりにCODEXと、他を情報収集しながら勉強しておりましたが、なかなかズバリな情報に辿り着けず途方にくれておりました。

    初心者だからこそ、色々試してより深く知りたい。より使いこなしたいと考え、プラグイン作成を勉強しはじめましたが、利用者が多く情報も多いと聞いていたWordPressでさえ、プラグインを利用する立場と、制作する立場で情報が極端に減る印象です。
    (調べ方が悪いだけかもしれませんが…)
    それでも、こうして理解を助けてくれる方がいらっしゃることに感謝します。

    さっそく参考にさせていただきます!

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「マルチサイト下でプラグインで追加したwp_optionsのデータをアンインストー」には新たに返信することはできません。