[WordPress] WP Tweet Button での短縮URLのキャッシュを削除

[WordPress] WP Tweet Button での短縮URLのキャッシュを削除

WordPressプラグイン「WP Tweet Button (2.1.3)」で、bit.ly の設定と Google Analytics の設定をしてしていたときに、Google Analytics の設定を解除したいときのメモ。


WordPressのプラグインの設定は、データベースの wp_postmeta に保存されています。
そこに bit.ly で取得した短縮URLが保存されていると、WP Tweet Button の設定画面で Google Analytics の設定を変更しても更新されないみたいなので、思い切ってデータベースから削除しちゃいます。

ツイートボタンを押した後の「Twitter でリンクを共有する」ウィンドウ画面

まずは、WP Tweet Button の管理画面で Google Analytics の設定を解除します。

  1. WP Tweet Button の設定画面を表示
  2. Advanced にある「Add Google Analytics campaign tracking code to links.」のチェックを外す
  3. [変更を保存] をクリック

"Add Google Analytics campaign tracking code to links." のチェックボックスを外す

それから、データベースの値を削除します。

  1. phpMyAdmin にログイン
  2. 一応データベースのバックアップをとる
  3. wp_postmeta の検索タブを開く
  4. meta_value フィールドの値に削除したい bit.ly の短縮URLを入力して [実行する] をクリック
  5. 見つかったカラムを削除

wp_postmetaの検索タブが選択されたときの入力欄と検索結果

これで削除されたと思うので確認してみて下さい。

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 を使ってないからだろう。

wp-tweet-button.php 447行目

//if ($_POST['tw_flush_cache']=='1'){
if (isset($_POST['tw_flush_cache']) && $_POST['tw_flush_cache']=='1'){

wp-tweet-button.php 431行目

//if ($_POST['tw_flush_cached_shortlinks']=='1'){
if (isset($_POST['tw_flush_cached_shortlinks']) && $_POST['tw_flush_cached_shortlinks']=='1'){

wp-tweet-button.php 1224行目

//if ($this->hasbutton[$post->ID] == 1) return $content;
if (isset($post) && $this->hasbutton[$post->ID] == 1) return $content;

wp-tweet-button.php 1360行目

//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');
}

wp-tweet-button.php1366行目

//if ($_POST['tw_clear_short_cache_post'] == '1') {
if (isset($_POST['tw_clear_short_cache_post']) && $_POST['tw_clear_short_cache_post'] == '1') {

wp-tweet-button.php1373行目

//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 が指定する文字列にしてやる必要があるらしい。

wp-tweet-button.php 1538行目

//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'));

Notice: has_cap の使用はバージョン 2.0 から非推奨になりました …