子テーマ化詳細’18
結局「今回も子テーマ化」してしまったので、それならそれでやりたい事はやっちゃいましょうという事で、まずは「前回のテーマ」でも導入した「投稿日」をクリックすると「月次アーカイブ」に遷移する仕掛け。オリジナルはテーマ直下の「functions.php」の「fotografie_posted_on()関数」を使っています。子テーマで「functions.php」の中の関数を書き換えるには前回もやった通り、オリジナルをコピーして「fotografie_posted_on2()関数」を作る事で実現しています。これは元のコード。
$posted_on = sprintf( esc_html_x( '%1$sPosted on%2$s %3$s', 'post date', 'fotografie' ), '<span class="screen-reader-text">', '</span>', $time_string );
これが手を加えたコードです。作成先は「fotografie-child/inc/template-tags.php」の中です。呼び出しは子テーマの「functions.php」の中で行います。
$year = get_the_time( Y, $post ); $month = get_the_time( m, $post ); $posted_on = sprintf( /* translators: Post date */ _x( '%s', 'post date', 'fotografie' ), '<a href="' . esc_url( get_month_link( $year, $month ) ) . '" rel="bookmark">' . $time_string . '</a>' );
子テーマの「functions.php」はだいたいこんな感じになります。最後の行が追加関数を呼び出しています。
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' ); function theme_enqueue_styles() { wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' ); wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array('parent-style') ); } get_template_part( 'inc/template', 'tags' );
今回のテーマ更新で新たに取り組んだのが「翻訳」です。これまでは「WordPress」の多言語対応のみでテーマ側の翻訳は行なっていませんでしたが、今回のテーマでは「翻訳」ファイルを作成してみました。まずは「翻訳」ファイルを読み込む設定から。先ほど改修した子テーマの「functions.php」に追加記載します。
function fotografie_child_languages(){ load_theme_textdomain( 'fotografie', get_stylesheet_directory() . '/languages' ); } add_action( 'after_setup_theme', 'fotografie_child_languages' );
「after_setup_theme」は親テーマの読み込みが終わった後に「fotografie_child_languages()」関数を実行するためです。「load_theme_textdomain()」関数が翻訳ファイルを読み込むための関数ですが、第1引数に親テーマと同じ「fotografie」を指定すると、親テーマの翻訳とマージしてくれます。
翻訳ファイルの作り方はいろいろありますが「POEDIT」を使うのが一番簡単です。Windows/Macどちらにもあります。オリジナルのテーマにテンプレートが用意されているので、それを使って翻訳ファイルを作る事が出来ます。「fotografie/languages/fotografie.pot」から多言語の翻訳ファイルを作成する事が可能です。上記の設定では、作成した翻訳ファイルは、子テーマの「languages」フォルダに置きます。テーマの場合、ファイル名は「ja.mo」と「ja.po」です。
[root@linux-ec2 languages]# dir 合計 40K -rw-r--r-- 1 apache 4.5K 5月 31 18:04 2018 ja.mo -rw-r--r-- 1 apache 30K 5月 31 18:04 2018 ja.po [root@linux-ec2 languages]#