カテゴリー
wordpress

WP to Twitterの投稿でハッシュタグが文字化け

最近はGoogleからの検索以外にも、実況性を求めてtwitterでの検索をする人も多いとのこと。
確かにリアルタイムの情報を得るのは、twitter検索だよね。

ということで、自分のブログも投稿と同時にtwitterに投稿するようにすることに。
使うプラグインは、twitter連動で超メジャーなWP to Wtitterを選択。
WP to Twitter — WordPress Plugins

タグを自動でtwitterのハッシュタグとして登録してくれるのも選んだポイント。

で、 wordpress4.4.2 + WP to Twitter 3.2.8 で運用することになったのですが、ハッシュタグ関連がおかしい。

タグからハッシュタグの変換で日本語が文字化けする

機能で、wordpressのタグを自動で#付きのtwitterのハッシュタグに変換するというものがある。
が、何故か日本語がURLエンコードされて、文字化けした状態でハッシュタグとして投稿されてしまう。

設定の「ハッシュタグとしてタグのスラッグを使う」の「タグの空白を置換」が機能しない

twitterのハッシュタグはスペースや記号の使用が禁止。
ただし _ (アンダーバー) を文字の区切りとして使える。
で、このプラグインの機能でwordpress側のタグでスペースが入ってる際に自動で任意の文字に変換する設定項目があるのに、設定をしても機能しない。
何をいれても、スペースが – (ハイフン)に変換されてしまう。

プログラムを修正してみた

とはいえぐぐってみても、特に同じような症状がみつからず、解決方法もわからず。
なのでプラグインを強引にプログラム修正することで解決としました。

以下の通り。

編集するファイルは wp-to-twitter.php のみ。

1110行目付近。
下記のコードで //追加 と末尾にある2行を追加するだけです。

	$hashtags = trim( $hashtags );
	if ( mb_strlen( $hashtags ) <= 1 ) {
		$hashtags = "";
	}

	$hashtags = preg_replace( '/[\-]/', '_', $hashtags ); //追加
	$hashtags = urldecode($hashtags); //追加
	
	return $hashtags;
}

add_action( 'admin_menu', 'wpt_add_twitter_outer_box' );

これでハッシュタグが正常に日本語で表示され、空白は自動で _(アンダーバー) になります。

しばらくこれで使ってみる。

「WP to Twitterの投稿でハッシュタグが文字化け」への2件の返信

困ってたところまさに同じ悩みの回答が!
ありがとうございます、とても助かりました。

>> ゆうなさん

コメントありがとうございます。
いつも他の方のブログで自分も同じ様に助けてもらっているので、自分の記事がお役に立てれば嬉しいです!

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)