WordPressプラグイン「WP Tweet Button (2.1.3)」で、bit.ly の設定と Google Analytics の設定をしてしていたときに、Google Analytics の設定を解除したいときのメモ。
WordPressのプラグインの設定は、データベースの wp_postmeta に保存されています。
そこに bit.ly で取得した短縮URLが保存されていると、WP Tweet Button の設定画面で Google Analytics の設定を変更しても更新されないみたいなので、思い切ってデータベースから削除しちゃいます。
まずは、WP Tweet Button の管理画面で Google Analytics の設定を解除します。
- WP Tweet Button の設定画面を表示
- Advanced にある「Add Google Analytics campaign tracking code to links.」のチェックを外す
- [変更を保存] をクリック
それから、データベースの値を削除します。
- phpMyAdmin にログイン
- 一応データベースのバックアップをとる
- wp_postmeta の検索タブを開く
- meta_value フィールドの値に削除したい bit.ly の短縮URLを入力して [実行する] をクリック
- 見つかったカラムを削除
これで削除されたと思うので確認してみて下さい。
WP Super Cache 等のプラグインを使っていたら、それのキャッシュの削除もお忘れなく。
補足
ちなみにこのプラグイン、デバッグモード「define('WP_DEBUG', true);
」で見ると、以下のようなエラーを吐き出している。
現在、WordPress 3.4.2 を使用しています。
Notice: Undefined index: tw_flush_cache in /∗∗∗/blog/wp-content/plugins/wp-tweet-button/wp-tweet-button.php on line 447
Notice: Undefined index: tw_flush_cached_shortlinks in /∗∗∗/blog/wp-content/plugins/wp-tweet-button/wp-tweet-button.php on line 431
Notice: has_cap の使用はバージョン 2.0 から非推奨になりました ! 代わりに プラグインやテーマでのユーザーレベルの使用は推奨されていません。代わりに権限グループと権限を使ってください。 を使ってください。 in /∗∗∗/blog/wp-includes/functions.php on line 2722
きっと、$_POST
からのパラメーターを参照するときに isset
を使ってないからだろう。
//if ($_POST['tw_flush_cache']=='1'){ if (isset($_POST['tw_flush_cache']) && $_POST['tw_flush_cache']=='1'){
//if ($_POST['tw_flush_cached_shortlinks']=='1'){ if (isset($_POST['tw_flush_cached_shortlinks']) && $_POST['tw_flush_cached_shortlinks']=='1'){
//if ($this->hasbutton[$post->ID] == 1) return $content; if (isset($post) && $this->hasbutton[$post->ID] == 1) return $content;
//if ($_POST['tw_do_not_send_auto_tweet'] == '1') { if (isset($_POST['tw_do_not_send_auto_tweet']) && $_POST['tw_do_not_send_auto_tweet'] == '1') { add_post_meta($thepost->ID, '_tw_do_not_send_auto_tweet', 1, TRUE) or update_post_meta($thepost->ID, '_tw_do_not_send_auto_tweet', 1); //} elseif ( $_POST['tw_do_not_send_auto_tweet'] == null ) { } elseif ( !isset($_POST['tw_do_not_send_auto_tweet']) || $_POST['tw_do_not_send_auto_tweet'] == null ) { delete_post_meta($thepost->ID, '_tw_do_not_send_auto_tweet'); }
//if ($_POST['tw_clear_short_cache_post'] == '1') { if (isset($_POST['tw_clear_short_cache_post']) && $_POST['tw_clear_short_cache_post'] == '1') {
//if ($_POST['tw_exclude_tweet_button'] == '1') { if (isset($_POST['tw_exclude_tweet_button']) && $_POST['tw_exclude_tweet_button'] == '1') { add_post_meta($thepost->ID, '_exclude_tweet_button', 1, TRUE) or update_post_meta($thepost->ID, '_exclude_tweet_button', 1); //} elseif ( $_POST['tw_exclude_tweet_button'] == null ) { } elseif ( !isset($_POST['tw_exclude_tweet_button']) || $_POST['tw_exclude_tweet_button'] == null ) { delete_post_meta($thepost->ID, '_exclude_tweet_button'); }
あと、add_options_page
メソッドを使うときは、第三引数のユーザーレベルのところを WordPress が指定する文字列にしてやる必要があるらしい。
//add_options_page($this->pluginlabel, $this->pluginlabel, 8, basename(__FILE__), array(&$this, 'tw_options_page')); add_options_page($this->pluginlabel, $this->pluginlabel, 'level_8', basename(__FILE__), array(&$this, 'tw_options_page'));