コメント欄、検索の抜けを追加、MultilingualPressプラグインの言語判定ではなく標準のget_localeを使う方式に変更
一応、マルチサイトで英語のサイトもあります(練習で描いたのとゲームの部分)が、SANGOが素敵なテーマなので、同じデザインにするためカスタマイズしちゃいました。
英語用の子テーマを作る方法もありますが、両方メンテナンスするのは面倒になるので同じ子テーマを使うカスタマイズです。
需要があるかわかりませんが、自分の備忘録として記事にしています。
- WordPressマルチサイト
- SANGO 1.3.1
- パンくず は、Breadcrumb NavXTプラグインを使うようにカスタマイズ済み
- ブログの表示部分だけの多言語化(英語のみ)です。
- 抜けがあったらご愛嬌ということでf^_^;)
記事が長くなるので、テンプレート編、関数とプロフィール編、文字列翻訳編の3部構成としました。
目次
言語ファイルを使うための設定
無料のSimplicity2のテーマが多言語の英語のみに対応していますので、言語ファイルを使うための設定方法を使わせていただいています。
言語ファイルは、子テーマのフォルダーにlang
フォルダーを作って、そこに言語ファイルを入れることとします。また、翻訳するときに使うtextdomainをsangoとしています。
子テーマのfunctions.phpに以下を追記します。
// *********************************************************************
// ここから、Wordpressマルチ言語化の設定
//言語の最初の文字がenだったら全てen.moを呼び出す
global $locale;
if (strpos($locale,'en') !== false) {
$locale = 'en';
}
add_action( 'after_setup_theme', function () {
load_child_theme_textdomain( 'sango', get_stylesheet_directory() . '/lang' );
});
// ここまで、Wordpressマルチ言語化の設定
// *********************************************************************
テンプレートファイルでのカスタマイズ
カスタマイズというか、日本語の部分を翻訳できるように修正していきます。
基本的には、翻訳する文字列を__(‘翻訳文字列’,’sango’)
、または<?php _e(‘翻訳文字列’,’sango’);?>
と変更していきます。また、日付の年月日をyyyy/mm/ddに変更します。
翻訳する文字列が、どのようにコーディングされてるかによって修正方法が変わりますので、
記事が長くなりますが、各ファイルの修正部分を全て記述します。
先に、翻訳対象にするファイルを親テーマから子テーマにコピーします。
/wp-content/themes/sango-theme/comments.php
/wp-content/themes/sango-theme/content-not-found.php
/wp-content/themes/sango-theme/search.php
/wp-content/themes/sango-theme/parts/archive/archive-header.php
/wp-content/themes/sango-theme/parts/single/prev-next-entry.php
↓コピーします
/wp-content/themes/sango-theme-child/comments.php
/wp-content/themes/sango-theme-child/content-not-found.php
/wp-content/themes/sango-theme-child/search.php
/wp-content/themes/sango-theme-child/parts/archive/archive-header.php
/wp-content/themes/sango-theme-child/parts/single/prev-next-entry.php
comments.phpのカスタマイズ
日本語の文字列で行が判断できるので、修正行のみ記述します。
<h3 id="comments-title" class="h2 dfont"><?php comments_number(__('コメントはありません','sango'), '<span>1</span> Comment','<span>%</span> Comments');?></h3>
<?php $reply_string = __('返信する','sango');
wp_list_comments( array(
'style' => 'div',
'short_ping' => true,
'avatar_size' => 40,
'callback' => 'sng_comments',
'type' => 'all',
'reply_text' => $reply_string,
<div class="comment-nav-prev"><?php previous_comments_link('<i class="fa fa-chevron-left"></i> '.__('過去のコメントを表示','sango')); ?></div>
<div class="comment-nav-next"><?php next_comments_link(__('新しいコメントを表示','sango').' <i class="fa fa-chevron-right"></i> '); ?></div>
<p class="no-comments"><?php echo __('現在コメントは受け付けておりません。','sango'); ?></p>
content-not-found.phpのカスタマイズ
<div class="nofound-title"><?php if(is_search()||is_archive()){echo '<i class="fa fa-tint fa-lg"></i> '.__('記事が見つかりませんでした。','sango');} else {echo '<i class="fa fa-tint fa-lg"></i> '.__('お探しのページが見つかりませんでした。','sango');}?></div>
<p><?php _e('指定されたキーワードでは記事が見つかりませんでした。別のキーワード、もしくはカテゴリーから記事をお探しください。','sango');?></p>
<p><?php _e('まだ記事が投稿されていません。以下でキーワードやカテゴリーから記事を探すことができます。','sango');?></p>
<p><?php _e('お探しのページは「すでに削除されている」、「アクセスしたアドレスが異なっている」などの理由で見つかりませんでした。以下でキーワードやカテゴリーから記事を探すことができます。','sango');?></p>
<p><?php _e('以下のカテゴリー一覧から記事を探すこともできます。','sango');?></p>
<span><?php _e('カテゴリー','sango');?></span>
<a class="raised accent-bc" href="<?php echo esc_url( home_url( '/' ) ); ?>""><i class="fa fa-home"></i> <?php _e('ホームに戻る','sango');?></a>
content-not-found.phpのカスタマイズ
<h1 class="search-title"><i class="fa fa-search accent"></i>「<?php echo esc_attr(get_search_query()); ?>」<?php _e('の検索結果','sango');?></h1>
archive-header.phpのカスタマイズ
echo __('「','sango'); the_archive_title(); echo __('」の記事一覧','sango');
もし、カスタム投稿のカスタマイズをしている場合は以下となります。
if(is_tax()) {
echo __('「','sango'); single_term_title(); echo __('」の記事一覧','sango');
} else {
echo __('「','sango'); the_archive_title(); echo __('」の記事一覧','sango');
}
投稿者のアーカイブの場合に、プロフィール表示の多言語化
if(!is_paged()){//説明文(2ページ目以降には非表示)
if(is_author()) {
$archive_string = explode(";", get_the_archive_description());
if (blog_short_lang() !== 'ja' && count($archive_string) > 1){
echo '<div class="taxonomy-description entry-content">'.$archive_string[1].'</div>';
} else {
echo '<div class="taxonomy-description entry-content">'.$archive_string[0].'</div>';
}
} else {
the_archive_description( '<div class="taxonomy-description entry-content">', '</div>' );
}
}
prev-next-entry.phpのカスタマイズ
<p><i class="fa fa-angle-left"></i> <?php _e('前の記事','sango');?></p>
<p><?php _e('次の記事','sango');?> <i class="fa fa-angle-right"></i></p>
以上、テンプレート編でした。
Monappy: MBDQ39VHypMQwfyR8SshuHvfPNUz321F6B

モナゲ(tipmona)ってなに?
そもそもMonacoinってなに?
[…] 参考 SANGOテーマを多言語で使うカスタマイズ(1/3)テンプレート編<br />にゃんきち日和 参考 SANGOテーマを多言語で使うカスタマイズ(2/3)関数とプロフ編にゃんきち日和 参考 SANGOテ […]
sangoの英語化をしている先駆者を探して、この一連の記事に辿り着いたのですが
かゆいところに手が届かない記事でした。。修正部分を見つけて結局何をすればいいのか、分かりにくかったです。