投稿スラッグをGoogle AJAX Language APIで英訳するWordPressのプラグインを作った

このエントリーをはてなブックマークに追加
はてなブックマーク - 投稿スラッグをGoogle AJAX Language APIで英訳するWordPressのプラグインを作った
Share on Facebook
[`tweetmeme` not found]

投稿スラッグをGoogle AJAX Language APIで英訳するWordpressのプラグインを作った

それは、どういうものですか?

WordPressのURLとして使われる投稿スラッグ。これは、標準だと投稿タイトルをURLエンコードしたものが自動的に使われて、やけに長くなるしかっこ悪い。

んで、ぼくは投稿タイトルを逐一英訳して投稿スラッグとして入力しているんだけど、ボキャ貧なので通じるかどうかわからない怪しげな英語になってしまう ><

そこで、自動的に投稿タイトルを英訳してくれて、それが投稿スラッグになってくれると素敵だなと思い、Wordpressのプラグインを作ってみました。

インストール方法と使い方

<?php
/*
Plugin Name: Slug translate J to E 
Plugin URI: http://creco.net/
Description: 投稿タイトルの日本語をそのまま投稿スラッグにするのではなく、Google AJAX Language APIで英訳したものを投稿スラッグにします
Author: Shintaro Inagaki
Version: 1.0
Author URI: http://creco.net/
*/

function slug_translate_j_to_e($title) {

    $translateApiUrl = 'http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q='.urlencode($title).'&langpair=ja%7Cen';
    $response = file_get_contents($translateApiUrl);  
    
    $parsedJson = json_decode($response);

    if(isset($parsedJson->responseData->translatedText)) {
        $title = $parsedJson->responseData->translatedText;
    }
    $title = strtolower($title);
    $title = str_replace(' ', '_', $title);
    $title = preg_replace('/[^%a-z0-9_-]/', '', $title);

    return $title;
}

add_filter('sanitize_title', 'slug_translate_j_to_e', 9);

?>

上のコードを適当なファイルに保存( slug-translate-j-to-e.php とか適当な名前つけてね)して、Wordpressのプラグインフォルダ( /wp-content/plugins/ 以下)にアップロードすれば、プラグイン管理画面から「使用する」が選べるようになります。

後は、普通に投稿すれば自動的に投稿タイトルを翻訳したものが投稿スラッグとして使われてると思います。

翻訳を確認したいという場合は、「下書きとして保存」とし、その後に投稿スラッグを編集すれば、半手動で利用できるかと。

やっていること

Translation API のクラス リファレンス – Google AJAX Language API – Google Code をRESTで使用しています。

タイトルをAPIに投げて、JSONで帰ってきたものを処理。

処理は、上から順番に、大文字を小文字にする → スペースをアンダースコアに変換する → 小文字英数字とハイフン、アンダースコア以外の文字を削除する といった内容。

注意点

Google の翻訳は期待しないほうがいい。


タグ: , ,

コメント / トラックバック 5 件

  1. […] PIを使って同様なことを実装しているという記事。 投稿スラッグをGoogle AJAX Language APIで英訳するWordpressのプラグインを作った | クレコ よし、これだとプラグインではなく、直接functions.p […]

  2. YK より:

    わたしも3.1で試しましたが、PHP Fatal error: Cannot access empty property……..class-wp-admin-bar.php on line 167
    となってしまいます。
    ちょっとソース見ましたが修正の見当がつきませんでした。

  3. […] 引用元: 投稿スラッグをGoogle AJAX Language APIで英訳するWordpressのプラグインを作った | クレコ. […]

  4. […] 投稿スラッグをGoogle AJAX Language APIで英訳するWordpressのプラグインを作った | クレコ […]

  5. showBOO より:

    はじめまして。

    やっと探していたプラグインが見つかってうれしい限りです。

    しかし、当方、WordPress 2.8を使用していますが、
    このプラグインを有効にすると、管理画面が見れなくなってしまうという現象が起きてしまいます。

    このプラグインは、2.8での使用可能でしょうか?
    もしくは何かのプラグインと干渉しているのでしょうか?

    よろしくお願いいたします。