*WordPress で多言語化(二言語化)サイトを構築する 2015年4月1日 & 追加4月25日 [#pa5de039]
#contents

** 背景 [#e977749c]
[[某団体>http://www.insect-sciences.jp/]]((16の加盟学協会のいずれにも入会したこともまともに参加したこともないのに編集幹事に指名されてしまった。どの学会にも入っていなくてもよい、かつ、運営委員になっても入会する必要はないと言われ……。レフェリーはいくつかの学会のものをやったことあったものの))
のウェブページ担当になり(2014年7月から)、日本語版に加え、
英語版の作成も仰せつかったので、
[[WordPress>https://ja.wordpress.org/]] を使って構築しました。
言語の選択をするときちんとページが変わる、恐らく多くの人が期待しているような、
そんな「本物っぽい」ページができました。
使ったテーマのデザインは触っていないので、
見ためのカッコよさなどは不十分とは思いますが、
それはまた別な人にお任せ((文句があるなら対案を出せ、ということで))。

*** WordPress にする [#u293b1da]
これまでは、(前任者が何を使っていたのかはよくわからないのですが((どんなソフトを使っていたのか教えてほしいと尋ねたら、好きなものを何を使っても構わない、との有り難いお言葉をいただきました。便利なもの教えてくれ、という意味だったんだけど、必要なら作れってことか!ということで今回作ったという次第)))
加筆修正に html コードを書き替えなければならず、
かなり面倒でした((エディタで手打ちは時代に合いませんがな))。
そこで、サーバが sakura で WordPress 
が簡単にインストールできることから((ところが、本番環境の、ホームディレクトリ直下にインストールしようとしたら、sakura のサーバコントロールパネルからはインストールできず、インストール用 php をアップロードする手間が要りました))、
WordPress を使って構築することにしました。
sakura では Open MovableType も使えるのですが、何となく MovableType は
私に合わない気がして、また、WordPress はドキュメントも、
無料の拡張機能も多そうだったので、
WordPress にしました((WikiMediaもインストールしてみたのだけれど、こういうサイトには向かないことがよくわかりました))。

*** Bogo で多言語化 [#m4ceae22]
多言語化のプラグインは [[Bogo>http://ideasilo.wordpress.com/bogo/]] を利用。
案内ページの浮世絵がちょっと分子生物学会ちっく。
もちろん、絵が面白いから選んだのではありません((分子生物学会の会員でもないし))。
xili-language を試したところ、トップページの切り替え''だけ''が上手くいかず、
泣く泣く諦めました。
トップページは英語で他の言語は別ページとするならば、
xili-language は第一の選択肢になると思います。
適当に作ったページ同士を紐付けするのも簡単なので。
polylang も次に試しましたが、これはテーマとの相性が悪かったのか、
上手くいきませんでした。評価できません。
ということで、最後に Bogo を試したところ、シンプルで使い勝手もよい。
言語のロケールの変換や後から紐付けができない点が不便ですが、
作成者が対応する気がないと[[宣言している>https://ja.forums.wordpress.org/topic/147463]]ので、
慣れるしかありません。でも、慣れれば快適。

*** Bogo の言語の表示(ロケール)について [#l9a0991b]
Bogo では、ロケールに依存して同じソースでも表示が変化する。
この Bogo の特徴を利用すると、投稿ページの切り替え、投稿カテゴリの表示、
更には、Display Posts Shortcode を使って「集めて」きた投稿も、
そのページのロケールの言語だけ表示される。
この特徴によりコードを減らせるのは、
xili-language に対する大きなアドバンテージ。
また、xili-language では、言語別のメニューを用意しなければならないのだけれど、
Bogo ではメニューはひとつで、表示言語の指定をすればよい。
メニューの設定画面にアイコンが沢山並んで
縦長になってしまうのがイヤという人はいるかもしれぬ。

*** Bogo の仕様で注意点 [#m51f8303]
- 作ったページは、作ったときの言語のロケールになる。後から変更はできない。
- 対応する別な言語のページを作るときは、まず、言語を選び直す。ダッシュボード右上プロパティの左あたりに言語のセレクタがあるので、言語を変える。
- ロケールが変わると、その言語の翻訳版を作るためのボタンが出るので、それをクリックする。
- 新たなタブが開き、元の言語の内容(本文とタイトル)がコピーされる。
- タイトルを id にしたいときなどは、一度タイトルを消して、下書き、または、公開をするとよい。
- 別々に作ったページを紐付ける機能はない。今後も[[実装の予定はない>https://ja.forums.wordpress.org/topic/147463]]そうなので、必ず、元のページから生成する必要がある。

*** 作成目標 [#qda7b8ae]
ワタシの次の人に使えるようにして引き渡せるようにすること。
投稿(ブログ)機能を利用して、加筆修正がしやすく、
かつ、メンテナンスもしやすいようあまりマニアックにし過ぎないようなものを作る、
といったところです。
そこで、できるだけ php のソースコードやCSSを触らない、
過度にプラグインを多用しないようにしました。

*** ということで [#a4072893]
以下に箇条書的メモを残します。~
絵を付けたり、チュートルアル的なものを書くと1冊の本になってしまいそうなので、
そういうのは、ほかの人にお任せするとして、多言語化を中心に。
本番環境の構築はまだなので、これから変わる部分もあるかもしれません。

**sakura のサーバコントロールパネルで……、できなかった! [#pf331f7c]
ドキュメントルートには、sakura では簡単にインストールできないことが発覚~
「フォルダを指定して下さい」とのエラー~
そこで、インストラクションに従ってインストールした。

*** インストール [#r55dabb0]
- インストラクション [[http://wpdocs.sourceforge.jp/WordPress_のインストール>http://wpdocs.sourceforge.jp/WordPress_のインストール]] に従ってインストールする

--まず、sakura のサーバコントロールパネルで mysql のデーベースを作成
  データベース名:himitsu
  データベース文字コード:utf8;

-- wordpress 公式ページ http://ja.wordpress.org/ から、wordpress-4.1.1-ja.zip をダウンロード

-- 解凍し、www の下に置く

-- wp-config.php を作成 ← wp-config-sample.php を cp 

-- sakura の emacs では日本語が読めないので、ダウンロードして、ローカルで編集
 /** WordPress のためのデータベース名 */
 // define('DB_NAME', 'database_name_here');
 define('DB_NAME', 'himichu');
 
 /** MySQL データベースのユーザー名 */
 // define('DB_USER', 'username_here');
 define('DB_USER', 'koremo-himichu');
 
 /** MySQL データベースのパスワード */
 // define('DB_PASSWORD', 'password_here');
 define('DB_PASSWORD', 'mochiron-himichu');
 
 /** MySQL のホスト名 */
 // define('DB_HOST', 'localhost');
 define('DB_HOST', 'hogehoge.db.sakura.ne.jp'); ← sakura で指定されてたもの
 
 // $table_prefix  = 'wp_';
 $table_prefix  = 'wp_****'; ← 自動でインストールしようとすると出てきたものを流用

-- wp-config.php をアップロード

-- www.insect-sciences.jp/wp-config.php にブラウザでアクセス


- WordPress をインストール(ディレクトリはwp)~
ドキュメントルートではないディレクトリにインストールするのは簡単です。~
クリックするだけでした

- 引越しに備え、いままで、home (~/) にあったファイルを ~/common にコピーし、
index.html で飛ばすようにしました((<head><meta http-equiv="Refresh" content=0; URL=http://www.insect-science.jp/common/"></head>))。~
なお、WordPress のディレクトリの下に、index.html を置いても全く問題ない
ことも確認しています。~
WordPress は、index.html は使わず、index.php を使うので、~/wp/index.html はきちんと動きます。

**WordPress のようこそ画面で [#le00846e]
 サイトのタイトル:日本昆虫科学連合
 ユーザー名:himitsu
 パスワード:motto_himitsu
 メールアドレス:koremo_himitsu
と入力


以下、そのほかのインストールと設定が相前後するけれども、 サイト構築は道具を作りながらの部分がどうしても必要なので、仕方ありません。

** WordPress ダッシュボード [#wc043256]

***設定→一般設定 [#q39374e3]
 キャッチフレーズ:Union of Japanese Societies for Insect Sciences
と入力

 WordPressアドレス (URL):http://www.insect-sciences.jp/
 サイトアドレス (URL):http://www.insect-sciences.jp/
となっていることを確認
//とする ↑ 本番環境では「wp」を取る予定
 日付のフォーマット:2015-03-31 
にチェック。
デフォルト言語が日本語なので、
ほかのフォーマットにすると月と日とか漢字が入ることもあり、
無難にコンピュータの表記を選ぶ。~

変更を保存

これにてWordPress のインストール完了とする

以下、インストールと設定が相前後するけれども、
サイト構築は道具を作りながらの部分がどうしても必要なので、仕方ありません。

** WordPress ダッシュボード [#ff361aa7]
-WordPress をバージョンアップ

-外観→テーマ
-- 新規追加→テーマのアップロード
-- biz-vektor_v_1_6_3.zip をアップロード
-- BizVektor を有効化=テーマに選択したことになる~
テーマは、たまたま買った本やその本を買うときに眺めた
(ざっと立ち読みした)本で紹介されていた 
[[BizVektor>http://bizvektor.com/]] を利用。
日本製、ビジネス用に作られており、カスタマイズ化、無料。
レスポンシブでスマートフォンやタブレットにもそのまま対応する。~
WordPress の「テーマ」は、姿形だけでなく、
様々な機能もパックされているものをいうそうです。


***プラグイン [#f7dd02d5]
- WP Multibyte Patch を更新
- WP Multibyte Patch を有効化~
日本語を扱うには、これを有効化しておくとよいとのこと。
WordPress をインストールすると入っている。
バージョンアップして、有効化するだけ。~

- Akismet を削除
- Hello Dolly を削除

***プラグイン追加 [#ce8686d4]
必要なプラグインをインストール&有効化。~
プラグインのインストールは、
+ ダッシュボードのプラグインをクリック
+ 新規をクリック
+ プラグイン名で検索
+ 適切なものを選択
+ インストールをクリック
+ 有効化
の手順
URL は参考でしかありません(Dagon Design Sitemap Generator 除く)。

- Bogo~
https://wordpress.org/plugins/bogo/
多言語対応のためにインストール。
Contact Form 7 と同じ作者(Takayuki Miyoshi)。
日本人((海外製のものがイヤというのではないのですが、日本の人が作ったものは、日本でのニーズが取り入れられていて、かつ、その機能が容易に使えるものが多い気がします。海外のものは、海外のニーズ優先になるからなんだと勝手に解釈))。
これで日英を実現しているので、必須。
プラグインそのものの設定は不要。有効化するだけ。

- Contact Form 7~
https://wordpress.org/plugins/contact-form-7/
某本の推奨のもの。
Bogo と同じ作者(日本人)。
これでウェブフォームを実現しているので、必須。

- Contact Form 7 add confirm~
https://wordpress.org/plugins/contact-form-7-add-confirm/
Contact Form 7 とは違う作者(でも日本人)。
Contact From 7 に確認ボタンを追加するプラグイン、必須。


- Display Posts Shortcode~
https://wordpress.org/plugins/display-posts-shortcode/
トップページの更新情報などで利用、必須~
はじめ、List category posts を使ったのですが、上手く動かないことがあったので、
使わないことにしました。~
使い方は別途

- TinyMCE Advanced~
https://wordpress.org/plugins/tinymce-advanced/
入力のとき表が作りやすくなる。
上付き文字などのアイコンも増やせるが使っていないけど、
本番では使えるようにしとこうと思う。
インストールして調子が悪くなるといけないのでテストでも入れておく。

- Google XML Sitemaps~
https://wordpress.org/plugins/google-sitemap-generator/
某本の推奨のもの。
一応設定はしたが、必要かどうかは不明。

- Dagon Design Sitemap Generator の導入~
「野良」なのだけれども、大丈夫そうです。2009年のもの。
ソースを検証すべきなのか???~
http://www.dagondesign.com/articles/sitemap-generator-plugin-for-wordpress/~
--ダウンロードした zipファイルを展開し、wp-content/plugins/sitemap-generator/ に置く。
--ダッシュボードのプラグインに現れるので、有効化する
--設定→DDSSitemapGen を少し変える
 Items per page: 250
 If showing both, which first: ●Pages first 
 Show dates after posts: チェックする
 Show dates after pages: チェックする
 Date format (if showing dates): Y-m-d
 Sitemap navigation method: ● Pages: 1 2 3 4 5
 Show sitemap navigation: ● At both top and bottom
--固定ページに~
 <!-- ddsitemapgen -->
と書く~
以上で設定終わり。~
流行?の PS Auto Sitemap はよくなかった。

-My Calendar((ほんとは後からインストールしたのだけれど、ここに書いときます))~
https://wordpress.org/plugins/my-calendar/ 
学会大会などのスケジュールをこれで見せるようにする。~
shordcode が使えるので、新着とは別に、
-- これから行われるもの
-- 既に終わったもの
の表示ができる。shortcode の詳細は別途。

いくつかカレンダーのプラグインを試してみたけれども、これがよさそうです。
2日間以上のイベントの管理が微妙にずれるんだけども((カレンダー表示に3日間見せようとすると、なぜか、4日間の期間を指定しなきゃならない))。

***設定→パーマリンク設定 [#n3ae3560]
カスタム構造のデフォルトを選び
  /%category%/%postname%/
とする

  NG NG NG NG NG NG NG NG NG NG NG NG
  オプション
  カテゴリーベースに「topics」と入力
  英語版でうまく動かないことがあるのでだめ
  英語側で投稿ページが表示できなくなる
  階層が異なってしまうためと思われる
  回避策はあるのかもしれないが深いことは考えないことにする
  NG NG NG NG NG NG NG NG NG NG NG NG  


*** 設定→ディスカッション [#dc66af8e]
投稿のデフォルト設定の~
 □他のブログからの通知 (ピンバック・トラックバック) を受け付ける
 □新しい投稿へのコメントを許可する
のチェックを外す。
後から外すと、それまでに投稿されていた記事のひとつひとつチェックを
外さなければならなくなる(40個くらいやったら疲れました……)。

*** メディア→新規追加 [#b36f744b]
写真などをアップロード

***外観→テーマ→カスタマイズ [#wb08966a]

以下、テーマ関連は BizVektor のカスタマイズ。
テーマが異なれば、また別なものとなります。似てるけど。

 サイトのタイトル:日本昆虫科学連合
 キャッチフレーズ:Union of Japanese Societies for Insect Sciences

- ヘッダー画像選択→新規画像:トップに使う大きな図を選択、切り抜かない
- デザイン設定
-- ヘッダーロゴ画像 → 画像を選択~
横長の図を選択
- 連絡先の設定
-- フッター左下とフッターコピーライトに……~
 日本昆虫科学連合 Union of Japanese Societies for Insect Sciences.
と入力。ピリオド忘れぬように(ピリオドがないと、
All Rights Reserved と続いているように見えてしまう)。

- Rebuild カラー設定
 キーカラー:#33cc00
 キーカラー(明):#000080  ← これは、色名があり、Navy
 キーカラー(薄):#ccff99

- 固定フロントページ
 ●固定ページ(ラジオボタン)を選択
ブログ主体のページではないので。

***外観→テーマオプション [#d89f6848]
※「変更を保存」ボタンが一番下にあるので注意!

- お知らせ & ブログ~
表記の変更のところを書き換え
 お知らせ → Info
 ブログ → Topics ← 完成したときによく見るので、英語で見てもいい単語に
※ 設定画面の表記も書き変わって、次からは Info & Topics になるので注意~
※ 今のところ Info は使う予定なし

- トップページ3PRエリアの設定~
BizVektor の宣伝みたいな文言が例として入っているので、
本番環境では適切なものにすること!!
単に消すだけでもいいのだが……。
残っていても被害が出るようなものではない。
 [1]タイトル
 [1]概要
 [2]タイトル
 [2]概要
 [3]タイトル
 [3]概要
と思っていたのですが、本番では全部消しておくだけにしました。

***外観→テーマの編集 [#f2bd9fdc]
php のコードをダッシュボードから変更できる。
はじめそれを知らなくて、 ssh でログイン、emacs で作業としていたのですが、
何と簡単なことか
(ちょっとセキュリティが心配なような気もしないではないが)。

- header.php~
2行追加。トップページにはヘッダロゴの絵を見せないようにするため
 <!-- [ #headLogo ] -->
 <?php if ( !is_front_page() ): ?> <?php /* 追加 28 Mar 2015 tomaru */ ?>
 <?php $heading_tag = ( is_home() || is_front_page() ) ? 'h1' : 'div'; ?>
 <<?php echo $heading_tag; ?> id="site-title">
 <a href="<?php echo home_url( '/' ); ?>" title="<?php bloginfo('name'); ?>"  rel="home">
 <?php biz_vektor_print_headLogo(); ?>
 < /a>
 </<?php echo $heading_tag; ?>>
 <?php endif; ?> <?php /* 追加 28 Mar 2015 tomaru */ ?>
 <!-- [ /#headLogo ] -->

- theme-options.php~
footer に表示される自サイト名を削るため548行目の
 echo $footSiteName;
をコメントアウトした。

- フッタに Powered By WordPress and BizVektor の文字列が出ないようにする。~
テーマ BizVektor の利用条件では消してもいいとのこと。
//      584行目の
//
//echo $footerPowered; 
//
//     をコメントアウトした。
 ○○.php の○○○○○○○○を●●●●●●●●した。
BizVektor では、「Powered By」を消すキットを販売していたりもするので、 
ここは書く訳にはいきません。 
テーマは無料だけれども、付加価値の部分は有料という商売をしているようです。 Linux のような感じですな。 
BizVektor へのリンクは作ったので、恩返しはできたでしょう。

- module_mainfoot.php
Contact us を設定するとフッタにしつこいメールのリンクが出るので、
&lt;!-- [ .mainFootContact ] --&gt; 

&lt;!-- [ .mainFootContact ] --&gt; 
&lt;!-- [ .mainFootContact ] --&gt; ~
と~
&lt;!-- [ .mainFootContact ] --&gt; ~
との間の
 <div class="mainFootContact"> 
 <p class="mainFootTxt">
 <?php biz_vektor_mainfootContact(); ?>
 </p>
 <?php // 問い合わせページのURLが設定されている場合に表示
 $options = biz_vektor_get_theme_options();
 if ($options['contact_link']) :?>
 <div class="mainFootBt"><a href="<?php echo $options['contact_link'] ?>">
	<img src="<?php echo get_template_directory_uri(); ?>/images/<?php
       _e('bt_contact.png', 'biz-vektor'); ?>" 
       alt="<?php _e('Contact us by e-mail', 'biz-vektor'); ?>" /></a>
 </div> 
 <?php endif; ?>
 </div> 
(↑適宜改行を入れています)
 (↑適宜改行を入れています)
を全てコメントアウトした。
コメントアウトが面倒だったので、コメントアウト後のソースを下に
 <?php // comment out 29 Mar 2015 tomaru BEGIN ?>
 <?php 
 // <div class="mainFootContact"> 
 // <p class="mainFootTxt">
 ?>
 <?php // biz_vektor_mainfootContact(); ?>
 <?php 
 // </p> ?>
 <?php // 問い合わせページのURLが設定されている場合に表示
 // $options = biz_vektor_get_theme_options();
 // if ($options['contact_link']) :?>
 <?php 
 // <div class="mainFootBt"><a href=" ?>
 <?php //echo $options['contact_link'] ?><?php // "> ?>
 <?php 
 //	<img src=" ?><?php //echo get_template_directory_uri(); ?><?php 
 // /images/ ?><?php // _e('bt_contact.png', 'biz-vektor'); ?><?php
 // " ?> <?php //alt=" ?><?php 
 // _e('Contact us by e-mail', 'biz-vektor'); ?><?php 
 //" /> ?><?php //</a>
 //</div> ?>
 <?php // endif; ?>
 <?php // </div> ?>
 <?php // comment out 29 Mar 2015 tomaru END ?>
 (↑適宜改行を入れています)


*** 固定ページを作る [#b4a6ebfc]
少なくとも、トップページ用は作っておく。
そうしないとウィジェットの設定のとき、トップページが指定できなくなる。
後から指定すればいいだけだけど。

*** 本番のときは [#t5eba81a]
仮環境のときに
- ツール→エクスポート~
で、xml ファイルを出力
- ツール→インポート→WordPress
-- WordPress Importer をインストール
-- プラグインを有効化してインポートツールを実行
-- エクスポートしていた xml ファイルをアップロード
-- エラーが出るが気にしない~
トップページを設定する。~
メニューは復元するけれど、それぞれのメニューでの言語の選択は復元されないので、 ひとつひとつチェックし直す。

*** 外観→テーマ→カスタマイズ [#s13f99b1]
- 固定フロントページ
-- フロンントページ
 トップページ
を選ぶ(トップに置きたいものを選ぶ)

- 連絡先の設定
-- 問い合わせページのURL
 http://www.insect-sciences.jp/en/contact-us/
と入力。
//(本番環境では「wp」を抜く予定)。
Contact Form 7 のショートコードを書いたページ。
日英に対応しないので、英語を基本とした。
この設定をするとテーマ BizVektor によって、
ウィジェットに「BV_お問いあわせ」が出現する。

*** 外観→ウィジェット [#qb2a7d1d]
この設定は重要。
一度設定すればいいのだが重要。
プラグイン追加後に調整のこと。
「保存」をクリックし忘れないように。

Bogo をインストールするとウィジェットに「日本語」と「英語(米国)」
で表示するかどうかチェックボックスが表われます。
このチェックを外すとその言語では見えなくなります。
間違って、英語(英国)をインストールしたことがあったのですが、
そのときは3つ選べました(wp-content/lauguage
の下の関係する言語を消せば言語のアンインストールはできます)

ウィジェットが二ヶ国語対応のときは、両方チェックしたままでOK。
- 言語切り替え ← Bogo 
- BV_問い合わせボタン ← BizVektor 
- BV_最近の投稿 ← BizVektor~
などは、和英に対応しています。
なお、「BV_」のウィジェットは、BizVektor のもの。

- コンテンツエリア(トップページ)~
に以下のウィジェットを並べる
-- BV_トップ用_固定ページ本文
---「トップページ」を選ぶ ← 日本語用のトップページを選ぶ
---「タイトルを表示させる」のチェックを外す
---「英語(米国)」のチェックを外す
 
-- BV_トップ用_固定ページ本文
---「TopPage」を選ぶ ← 英語用のトップページを選ぶ
---「タイトルを表示させる」のチェックを外す
---「日本語」のチェックを外す

- サイドバー(お知らせページ) ← 使う予定はないが一応~
に以下のウィジェットを並べる
-- 言語切り替え    

- サイドバー(トップページ)~
に以下のウィジェットを並べる
-- 言語切り替え    
-- 検索~
---タイトルに「サイト内検索」と入力
---「英語(米国)」のチェックを外す       
-- 検索
--- タイトルに「Search the Site」と入力
---「日本語」のチェックを外す
-- BV_問い合わせボタン

- サイドバー(投稿ページ)~
に以下のウィジェットを並べる
-- 言語切り替え    
-- BV_最近の投稿
--- タイトルに「新着情報」と入力
--- 表示件数を「5」とする
--- 「英語(米国)」のチェックを外す       
-- BV_最近の投稿
--- タイトルに「What's New」と入力
--- 表示件数を「5」とする
---「日本語」のチェックを外す
-- 検索
---タイトルに「サイト内検索」と入力
---「英語(米国)」のチェックを外す       
-- 検索
--- タイトルに「Search the Site」と入力
--- 「日本語」のチェックを外す
-- BV_問い合わせボタン

- サイドバー(固定ページ)~
に以下のウィジェットを並べる
-- 言語切り替え    
-- BV_最近の投稿
--- タイトルに「新着情報」と入力
--- 表示件数を「5」とする
---「英語(米国)」のチェックを外す       
-- BV_最近の投稿
--- タイトルに「What's New」と入力
--- 表示件数を「5」とする
---「日本語」のチェックを外す
-- 検索
--- タイトルに「サイト内検索」と入力
---「英語(米国)」のチェックを外す       
-- 検索
--- タイトルに「Search the Site」と入力
---「日本語」のチェックを外す
-- BV_問い合わせボタン


*** 外観→メニュー [#ja30ff25]
- メニュー構造を調整~
インポートした場合は全て入っているが言語の設定ができていないので、適宜選ぶ。
フッターナビゲーションでは英語のメニューも日本語で表示するよう設定
 
*** あとは個々のページを調整していく [#y5e2e3f7]

基本方針~
-「投稿」のスラッグは数字(id)にする
-「固定ページ」のスラッグは後から考えて作る

*** 外観→テーマ→カスタマイズ [#s13f99b1]
- ナビゲーション 
-- Header Navigation: GlobalNavigation
-- Footer Navigation: FooterNavigation
-- Footer SiteMap: (選択せず)

- 固定フロントページ
--「フロントページ」(プルダウンメニュー)は「トップページ」を選択

***引越すときには、 [#y18de9ad]
仮環境のときに 
- ツール→エクスポート~

で、xml ファイルを出力

- ツール→インポート→WordPress~
-- WordPress Importer をインストール
-- プラグインを有効化してインポートツールを実行
-- エクスポートしていた xml ファイルをアップロード
-- エラーが出るが気にしない

メニューは復元するけれど、それぞれのメニューでの言語の選択は復元されないので、
ひとつひとつチェックし直す。


*** Contact Form 7 の設定 [#m58aa35c]
プラグインを有効化するとダッシュボードに「お問い合わせ」とのメニューができる。
それを使って設定し、ショートコードを固定ページに貼り付けておしまい。

-日~
タイトル:お問い合わせフォーム

--フォーム
 <p>お名前 (必須)<br />
    [text* your-name 60/] </p>
 (空行) 
 <p>ご所属<br />
    [text your-affiliation 60/]
 (空行) 
 <p>メールアドレス (必須)<br />
    [email* your-email 60/] </p>
 (空行) 
 <p>お問い合わせ内容<br />
    [textarea your-message 70x] </p>
 (空行) 
 <p>[submit "送信"][confirm "確認"] [back "戻る"]</p>
 ※ この [confirm "確認"] [back "戻る"] が、
 Contact Form 7 add confirm で使えるようになったもの

-- メール~
 差出人:日本昆虫科学連合/Union of Japanese 
 Societies for Insect Sciences <******@********.jp>
 (実際は改行していません)
 件名:UJSIS Contact Mail/日本昆虫科学連合お問い合わせ

--メッセージ本文~
 日本昆虫科学連合−お問い合わせフォームより送信がありました。
 (空行) 
 ===========================
 (空行) 
 【 お名前 】 [your-name] 
 【 ご所属 】 [your-affiliation]
 【 Email 】 [your-email]
 【 お問い合わせ内容 】 
 [your-message]
 (空行) 
 ===========================
 送信日時:[_date] [_time]
 IPアドレス:[_remote_ip]
 ブラウザ: [_user_agent]
 問い合わせのページURL:[_post_url]
 (空行) 
 このメールは自動送信でお送りしています。
 (空行) 
 --
 日本昆虫科学連合
 Union of Japanese Societies for Insect Sciences
 http://www.insect-sciences.jp/

-- メール (2)~
送信者へもメールを送るようにする
 [your-name] 様
 (空行) 
 日本昆虫科学連合:お問い合わせありがとうございました。
 (空行) 
 ===========================
 (空行) 
 【 お名前 】 [your-name] 
 【 ご所属 】 [your-affiliation]
 【 Email 】 [your-email]
 【 お問い合わせ内容 】 
 [your-message]
 (空行) 
 ===========================
 (空行) 
 このメールは自動送信でお送りしています。
 問い合わせページURL: [_post_url]
 (空行) 
 --
 日本昆虫科学連合
 Union of Japanese Societies for Insect Sciences
 http://www.insect-sciences.jp/

- 英
タイトル:Contact-us

--フォーム
 <p>Name (Required)<br />
    [text* your-name 60/] </p>
 (空行) 
 <p>Affiliation<br />
    [text your-affiliation 60/]
 (空行) 
 <p>Email address (Required)<br />
    [email* your-email 60/] </p>
 (空行) 
 <p>Message<br />
    [textarea your-message 70x] </p>
 (空行) 
 <p>[submit "Send"][confirm "Confirm"][back "Back"]</p>
 (空行) 

--メール~
こちらの受信用なので日本語版と同じ

--メール (2)~
メール本文
 Dear [your-name] 
 (空行) 
 Thank you for your message to the Union of Japanese Societies for 
 Insect Sciences.
 (空行) 
 ===============================================
 (空行) 
 Name: [your-name] 
 Affiliation: [your-affiliation]
 Email: [your-email]
 Message: 
 [your-message]
 (空行) 
 ===============================================
 (空行) 
 This email was automatically sent.
 Contact us URL: [_post_url]
 (空行) 
 --
 Union of Japanese Societies for Insect Sciences
 http://www.insect-sciences.jp/

**Display Posts Shortcode の例 [#xab24ade]
 [display-posts] 
とすると、全ての投稿のうち、その言語のものが新しい順に10コまで表示される。
そのページの言語ではないものは表示しない(Bogo の機能)。
したがって、同じコードを別々の言語の固定ページに貼り付けてOK。
 include_date="true" 
とすると、日付が表示される。~
 include_excerpt="true"
とすると、本文が途中まで表示される。~
 posts_per_page="数字"
とすると、指定したカテゴリの投稿のうち、その言語のもののうち
新しいものから「数字」個が表示される。~
 category="fruitfly,butterfly,dragonfly,sawfly"
でカテゴリを指定。
 tag="parasite"
で、タグが使える。カテゴリとタグの併用もできる。
 include_content="true"
とすると、指定したカテゴリの投稿が全て表示される。
 wrapper="div" 
とすると、div でラップされる。
そこで、
 <div>
 [display-posts category="hexapoda" wrapper="div" 
 posts_per_page="1"  include_content="true"]
 (適当に改行しています:以下同様)
 </div>
とすると、指定したカテゴリ(hexapoda)の投稿のうち、その言語のもののうち
一番新しいものの全文が表示され、
ul のビュレット(箇条書きの印)が出ない(divだから)。
つまり、hexapodaカテゴリの投稿のうち、
今見ている言語で最新のものの全文が表示される。~
同じコードでも、一方には posts_per_page="1"、
もう一方には posts_per_page を入れないとするページを作ると
- 最新の投稿のページ
- 全ての投稿が並んだページ

が自動でできる。
しかも、新しく投稿すれば、最新は差し替わり、全てのページには追加される。
 <div>
 [display-posts category="arthropod" tag="parasite" wrap="div"  
 posts_per_page="200000" wrapper="div"  include_content="true"]
 </div>
とすると、指定したカテゴリ(arthropod)の投稿のうち、
タグに parasite をもつもので、
その言語のもの全て(200000個まで:対応していないかも)
の投稿の全文が表示される。
これは長くなりそうだ……。

なお、副産物として、カテゴリの第2の階層を選ぶが、親の階層を選ばないでおくと、
リンクがあってもクリックできず、投稿した記事だけが裸になって
見えてしまうことがない。リンクできるように見えてしまうのが残念だけど。

***新着情報の例 [#a737ef0c]
 [display-posts category="fruitfly,butterfly,dragonfly,sawfly,
 dobsonfly, whitefly,Spanishfly" posts_per_page="5" include_date="true" 
 date_format="Y-n-j" include_excerpt="true"]

** My Calendar の Shortcode の例 [#k5c15649]

My Calendar も独自のカテゴリーがある。
作っておくと、Shortcode で利用できる。

*** 月毎のカレンダーの表示 [#q44a376a]
[my_calendar format="calendar" time="month" above="nav,jump" below="none" category="butterfly"]
 [my_calendar format="calendar" time="month" above="nav,jump" 
 below="none"  category="butterfly"]

*** これから行われるイベントの箇条書き表示 [#tc5d71d4]
[my_calendar_upcoming template="<strong>{daterange}</strong><br /> {linking_title}<br />{excerpt}" before="0" after="10000" type="event" order="asc" show_today="yes" category="international-meeting"]
 [my_calendar_upcoming template="<strong>{daterange}</strong><br />
 {linking_title}<br />{excerpt}" before="0" after="10000" type="event" 
 order="asc" show_today="yes" category="arthropod"]

template= を使うと、html タグも使える。~
{daterange}:日付の範囲 ← これがカレンダー表示とずれる原因なのだが解決できていない~
{linking_title}:タイトルをクリックすると、そのイベントが表示される~
{excerpt}:内容の一部を表示~
before="0" after="10000" :これで、今日より前は含めず、将来を見せると指定~
show_today="yes" : 今日のイベントを含める

*** 既に終わったイベントの箇条書き表示 [#web85835]
[my_calendar_upcoming template="<strong>{daterange}</strong><br /> {linking_title}<br />{excerpt}" before="1000" after="0" type="event" order="desc" show_today="yes" category="fruitfly"]
 [my_calendar_upcoming template="<strong>{daterange}</strong><br />
 {linking_title}<br />{excerpt}" before="1000" after="0" type="event"
 order="desc" show_today="yes" category="fruitfly"]

my_calendar_upcoming:upcoming で間違いではない。before と after で制御しているので~
template= を使うと、html タグも使える。~
{daterange}:日付の範囲 ← これがカレンダー表示とずれる原因なのだが解決できていない~
{linking_title}:タイトルをクリックすると、そのイベントが表示される~
{excerpt}:内容の一部を表示~
before="1000" after="0" :これで、今日より前だけを見せると指定~
show_today="yes" : 今日のイベントを含める

*** 予定がないとき [#f80f052b]
[my_calendar_upcoming template="<strong>{daterange}</strong>
{linking_title}
{excerpt}" before="0" after="10" type="event" fallback="連合関連のシンポジウム等の予定はありません" order="asc" show_today="yes" category="insect,arthropod"]
 [my_calendar_upcoming template="<strong>{daterange}</strong>
 {linking_title} {excerpt}" before="0" after="10" type="event"
 fallback="連合関連のシンポジウム等の予定はありません" order="asc"
 show_today="yes" category="insect,arthropod"]

fallback="文字列":イベントがないときに表示される。
昆虫連合そのもののシンポジウムなどはない期間があるので、代替文字列も必要。
My Calendar の shortcode は対応できるのが素晴しい。

** 4バイト文字の対応 [#s8be4e96]

さてさて、文字コード UTF-8 には、4バイトで一文字を表すものがあって、
……

http://freefielder.jp/blog/2013/03/wordpress-4-byte-chars.html
WordPress で 4バイト文字を扱えるようにする。~
によると

&#x に続いて、埋め込みたい文字の16進コード、最後に ;

 土に濁点は、&#x2123D;

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS