WordPressのマルチサイトで標準で設定されるカテゴリをカスタマイズする
多言語化に対応したカテゴリ名でブログをセットアップしたい
WordPressのマルチサイトでは、新規にブログをセットアップする際にデータベーステーブル一式が新規に作成される。
多言語対応したブログサービスを開発する場合には言語間の差を意識しながら、その差を吸収するための細かい設定を行わないといけない。
マルチサイトのルートドメインを日本語に設定していると、デフォルトで設定されるカテゴリ名が[未分類]となる。日本語だけを意識しておけばこのままでも問題はないが、多言語対応したブログサービスの場合には、セットアップ処理に一つ工夫をする必要がある。WordPressで[未分類]のカテゴリは、
wp_terms
というデータベーステーブルに格納されている。マルチサイトの場合は、正確なテーブル名は、
wp_2_terms
wp_3_terms
などとなっている。phpmyadminで確認したのが以下の画像。
[未分類]という日本語のカテゴリがセットアップ時に作られてしまっている。日本語以外のユーザーが目にしても違和感のないカテゴリ名が標準でセットアップされたほうが良い。
wp_update_termで既存のカテゴリ名を変更可能
カテゴリ名の変更はwp_update_termで行うことができる。
http://codex.wordpress.org/Function_Reference/wp_update_term
このwordpress関数をwpmu_new_blogアクションフックに関連づければ、未分類カテゴリをカスタマイズすることが可能。
add_action('wpmu_new_blog', array($this, 'wpsetup'));
wpsetup内でカテゴリ情報の修正を行う。
wp_update_term(1, 'category', array( 'name' => 'blog', 'slug' => 'blog', 'description' => 'default category' ));
未分類カテゴリの$term_idは無条件で1に設定されている。そのため、上のコードようにwp_update_termを利用すれば、未分類カテゴリではなく、blogカテゴリが標準カテゴリとしてブログがセットアップされる。
管理画面のカテゴリページは以下のようになる。
wp_update_termのほかに、wp_insert_termという関数もあり、こちらの関数で新規にカテゴリ情報を追加することもできる。複数のカテゴリを設定した状態でブログをセットアップしたい場合に活用できる。
WordPressのカテゴリーについての記事