助かりました。m(_)m WordPressプラグイン『WordTwit』が文字化けしないようPHPを修正してみた。


wordpress001

記事登校時にTwitterにリンクをシェアしてくれる、WordPressの王道プラグイン『WordTwit』がメジャーバージョンアップ後に、タイトル部分の一部が文字化けしてしまうという現象が発生するようになっていました。

主導で記事タイトルの記述の変更も出来るので、「ま、まあ、そのうち対応してくれるだろう…」と思っていたんですがなかなか直らないまま時が過ぎ去り…そうこうしているうちに、この現象について、手動にて問題を修正した人の記事を発見。

ちょっと参考にさせてもらって、僕も修正してみました。

スポンサードリンク

 

現象

現象としてはこんな感じ。 投稿前の記事編集画面で、自動的に件名を取得してリンクを貼ろうとしてくれますが…「?」マークの文字化けによって中途半端に表示されてしまう状態に。
2014-0125-082700

このまま投稿すると、当然ながらその部分が途切れて表示されてしまうようになってます。

件名を手動にて入力してあげれば解決するといえばするのですが、あまりスマートじゃないし、なんとかしたいところですよね。

今日の参考記事

【WordPress Tips】WordTwitが文字化けして投稿に失敗する事象への対応策 | Hacks for Creative Life!

今回参考にさせていただいたのはこちらの記事。 実際にプラグインのPHPの記述を確認して、対応方法についてご紹介している記事です。

変更してみた

上記の記事にそって、PHPの記述を修正してみました。 修正するのはPHPのsubstr関数mb_substr関数に変更するという部分のみ。 3文字追加するだけなので、PHPの知識がなくても修正可能ですね。
2014-0125-083711

wordtwit/include/post-box-functions.php 変更前


	if ( in_array( 'title', $valid_sections ) ) {	
		// Do title shortening if it is enabled via the settings
		$test_tweet = str_replace( '[title]', $wordtwit_pro->dequote_string( html_entity_decode( $post->post_title ) ), $tweet );
		if ( strlen( $test_tweet ) > 140 && $settings->shorten_title ) {
			$reduce_title_by = strlen( $test_tweet ) - 140 + 2;
			
			if ( strlen( get_the_title() ) > $reduce_title_by ) {
				$new_title = substr( get_the_title(), 0, strlen( get_the_title() ) - $reduce_title_by ) . '… ';
				
				$tweet = str_replace( '[title]', $new_title, $tweet );
			} else {
				$tweet = $test_tweet;
			}	
		} else {
			$tweet = $test_tweet;	
		}
	}

変更後(抜粋)


				$new_title = mb_substr( get_the_title(), 0, strlen( get_the_title() ) - $reduce_title_by ) . '… ';

上記を変更して保存。 そして、改めてWordTwitの画面を見てみたところ…。
復旧! 直りました。
2014-0125-085112

件名の最後に追加される“…”の部分がちょっと気になりますが…。 上記の同じ行に、この部分の記述があるので、ここを修正してあげれば直ります。


				$new_title = mb_substr( get_the_title(), 0, strlen( get_the_title() ) - $reduce_title_by ) . ' ';

当然発生するひとつの注意点。

ただひとつ、直接PHPを変更する方法だとアップデート後には再び修正点が上書きされてしまうので、アップデートしたらまた自分で修正をしてあげる必要が、ありそうな感じですね。

本当は公式で対応してくれるのが、一番なんですけどねー。

 

スポンサードリンク

 

この記事が参考になったら、TipstourのFacebookページに『いいね!』をお願いします!

 

よろしければFeedlyもご登録ください!
follow us in feedly