WordPressのテーマ、Minimal Xpert の日本語化

最近お気に入りのWordpressのテーマに、Minimal Xpert というのがある。ちょっと前から Cimbalom World Association のサイトで使っていたのだが、日本語では、excerpts がうまくいかないなどの課題があって、自分のサイトに適用するのをためらっていた。今日ちょっと時間をとって直してみたので、備忘録としてインストール記録をば。

まずは普通にインストールと設定:

  1. Minimal Xpert をMinimal Xpertサイトからダウンロードしてきて、/wp-content/themes/ に展開。
  2. ダッシュボード>外観>テーマ (/wp-admin/themes.php)で、Minimal Xpert を有効化。
  3. ウィジェットを設定。
  4. メニューを設定。(ちなみにこのメニューとは、サイトタイトルの直下に現れるメニューバーのこと。 )”Menu”という名前のメニューを足して、そこに左側のpaneから適宜項目を足す。その上で、「テーマの場所」の「Main Nav」プルダウンで「Menu」を選択。
  5. 「外観」の上に「Slides」が出ているので、そこでSlidesを追加。画像は「アイキャッチ画像」として追加のこと。ここで設定したスライドタイトルが、実際のスライドのキャプションとして使われる。
  6. 左メニューの下の方に「MX Settings」というメニューがあるのでこれを開き、適宜設定。スライドのトランジションはここで一回設定して「Save Options」しないと反映されない。

英語だったらこれでお終いなのだが、このままだとトップページ他の自動要約がうまく働かない。英語だと、冒頭から50単語を抜き出してそれ以上は「Read More…」してくれるのだが、日本語だとだらだらと、下手をすると全文出てしまう。これは、「単語」を「スペース」で区切って判別しているからだ。これだと、日本語だと下手をすると50段落になってしまう。

さて、この抜き出しをしているのは minimal-xpert/functions/better-excerpts.php というファイルだ。これを改造する。

まず、11行目で ‘ ‘ で文を単語に分割して、12行目で単語数を数えるということをやっているが、日本語の場合これは意味が無い。文字数ベースでやるべきなので、これをコメントアウトして、全体の文字数を $tot = strlen($text) して取得する。

さらに、14行目で、出力「$output」を、for ループを $words 数回して作っているが、これも意味が無いのでコメントアウト。そのかわり、$words を文字数と考えて、mb_substr($text,0,$words) してやって作る。

以下は diff の結果。

11,12c11,13
< $text = explode(' ', $text);
< $tot = count($text);
---
> // $text = explode(' ', $text);
> // $tot = count($text);
> $tot = strlen($text);
14c15,16
< for ( $i=0; $i<$words; $i++ ) : $output .= $text[$i] . ' '; endfor;
---
> // for ( $i=0; $i<$words; $i++ ) : $output .= $text[$i] . ' '; endfor;
> $output.=mb_substr($text,0,$words);

さらに、minimal-xpert/post-entry.php を編集する。英語の場合は50単語で切っていたが、日本語では140文字できることにする。修正は2ヶ所。以下は diff の結果。

13c13
< <?php the_news_excerpt('50','','','plain','no'); ?>
---
> <?php the_news_excerpt('140','','','plain','no'); ?>
19c19
< <?php the_news_excerpt('50','','','plain','no'); ?>.
---
> <?php the_news_excerpt('140','','','plain','no'); ?>.

これでOK。

 



			
					

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください