Multisite language switcherの使い方

Multisite language switcherの使い方

WordPressのマルチサイトを利用したサイト多言語化の記事では書かなかったのだが、一応Multisite language switcherの簡単なTIPSを書いておく。 まずはサイトネットワーク管理のプラグインメニューから、新規追加でネットワークで有効化する。 それぞれの言語サイトの設定メニューから、Multisite language switcherのタブに行き言語設定。 どのページからでもお互いの言語に簡単に飛べるように、翻訳の無い記事であってもそれぞれの言語へのリンクを貼るようにした。

それからMultisite language switcherのウィジェットを追加しておく。 外観のウィジェットの設定に行き、サイドバーやフッターにウィジェットの追加をしておくと、よりお互いのサイトへのアクセスが良くなる。 ちなみに私のテーマtwentyseventeenでは、ウィジェットの説明文と国旗が重なってしまう不具合があった。 これは説明文の最後に全角スペースを足すことで回避できた。

さらにtwentyseventeenの場合携帯でアクセスしたときに問題がある。 上記設定だと違う言語に飛ぶリンクが下部にしか出ず不便なのだ。 そこでヘッダーにウイジェットを足す。 テーマの編集からテーマのための関数(function.php)を開く。 真ん中のあたりにregister_sidebarというのがあるので、初期からあるフッターなどをコピーペーストして1個増やす。 name, id, descriptionなどを変更し新しいウイジェットにする。

続いてテーマヘッダーheader.phpに移動。 いろんな場所に

<?php dynamic_sidebar('上記id'); ?>

を突っ込んでみた。 すると個別ページはうまくいくものの、トップページでは巨大なヘッダー絵のせいかいまいち表示がうまくいかない。 しょうがないので記事上に突っ込むことにした。 少し前に投稿したように個別投稿設定を編集し、上記コードを挿入した。 これだとトップページでの各投稿に毎回現れるのが若干うっとうしいが、携帯で開いた時にトップに表示するという目的は果たせた。

トップ画面のヘッダー画像のランダム表示

嫁が良い写真をたくさんもっており、アップロードしてくれていたので、トップ画面のヘッダー画像をランダム表示にした。 外観のテーマのカスタマイズから、ヘッダーメディアのところに行き、アップロード済みヘッダー画像をランダム表示するという欄をクリックするだけである。

D

wordpress・twenty-seventeenでの個別投稿の設定

twentyseventeenでの個別投稿設定(single.php)の編集

各個別投稿ページにウイジェットを追加するなどの操作を加えたいことがある。 ワードプレスの場合、テーマごとに編集する必要のあるファイルは異なる。 だいたいはsingle.phpやcontents.phpなどがその設定ファイルになっているだろう。 私の使っているワードプレスのデフォルトテーマ”twenty seventeen”での編集の仕方はあまりウェブで見当たらなかったので一応記しておく。 twenty seventeenではsingle.phpも存在しているが、実はページの設定は細かいテンプレートファイルに分けて書かれている。 そのため通常single.phpを編集するような場面では、それぞれのテンプレートファイルを編集する必要がある。 通常のブログ投稿の個別設定を変えるにはwordpressインストールディレクトリ下

/wp-content/themes/twentyseventeen/template-parts/post/

下のphpファイルを編集することで変更を加えることができる。 エックスサーバーの場合、ログインしてファイルマネージャーからファイルを直接編集しても良いし、編集したファイルをアップロードしても良い。 通常は子テーマをthemesディレクトリ下に作成し、そこにコピーしてから変更を加えて行くのが良いだろう。 私の場合、子テーマ側での変更が反映されないバグ?なのか私のなにかしらミスがあったので、直接親テーマを変更した。 マルチサイトにしているあたりに原因があるのかもしれないがわからない。 しかしテーマをアップデートしたら、そのつど書き直す必要があるのが難だ。

子テーマの作成

上記を書いていて一応書いておくかと思った。 この内容は多くの良質なウェブサイトがあったので、私的備忘録に概略だけ。 エックスサーバーの場合、ファイルマネージャーに行き/wp-content/themes/に適当な子テーマのフォルダーを作る。 フォルダー、ファイルはページ右の方の[作成]というところから作れる。 子テーマのフォルダーの中に入ったらstyle.cssというファイルを作製する。 style.cssにtwentyseventeenのテーマを使うという記述をしておしまい。 あとは必要なファイルを子テーマにコピーして編集する。 function.phpのコピーについては注意が必要らしいが、私はまだ編集していないのでわからない。

D

wordpress多言語サイトのhttps化

Xserverではhttps化が無料でできるということであったので、せっかくなのでトライしてみることにした。

Xserverでのサイトのhttps化

サイトのhttps化自体はとても簡単で、Xserverのサーバーパネルにアクセスし、ssl設定タブーssl設定の追加から確定するだけで良い。 30分ほど待つとhttpsのサイトにアクセスできるようになる。
問題はWordPressで多言語化などの目的で、先にマルチサイト化をしている場合だ。 設定をhttpsに変更しようとしても、メインサイトのアドレス変更はワードプレスの設定画面からはできない。 ウェブで検索したところ、直接データベースを編集すれば変更できるようである。 ちょっと時間ができたので、やってみることにした。

wordpress多言語サイトのhttps化

サイトのhttps化自体は少し前に前述の通りに済ませておいた。 サイトのバックアップをとってから、まずはマルチサイトのサブディレクトリサイトのhttps化をする。 これはとても簡単で、参加サイトーサイトネットワーク管理ーサイト、から各サイトの編集をクリックする。 設定タブに移動してsiteurlとhomeのアドレスをhttpsに変えてあげれば良い。
続いてメインサイトのhttps化に取り掛かる。 メインサイトのアドレスを変更するには、直接mySQLデータベースを編集する必要がある。 私のエックスサーバー環境下では、サーバーパネルにログインするとデータベースのところにphpmyadminというものがある。 これをクリックするとユーザー名とパスワードを求められるので入力する。 mySQLのパスワードなんぞ忘れた!という方はファイルマネージャーからワードプレスインストール先のwp-config.phpにアクセスすれば良い。
さてphpmyadminの画面を開いたら、左側のフォルダ一覧をプラスを押して開くとwp-optionsというファイルが見つかる。 このファイルをクリックすると右側に中身が表示される。 そうすると上の方にsiteurlとhomeというオプションが見つかるはずだ。 これをhttpsに変えてあげれば良い。
あとはワードプレスにログインし直し、参加サイトーサイトネットワーク管理ーサイトに行くと、設定タブのsiteurlとhomeのhttpがhttpsに変わっているのが確認できるはずだ。
ただ私の環境下では一つ問題があって、同ページの情報タブのサイトアドレスの表示がhttpのままなのだ。 色々試して見たのだがここが変わらない。 しかしhttpsで問題なくサイトが動いているようであるので、原因が判明するまでは置いておくことにした。

サイトのhttps化後にやっておくこと

さてwordpressのhttps化をしたら、内部リンクや画像などのアドレスを全てhttpsに変えておく。 私たちのブログは大したリンク数・画像数ではないので、手動で全部変換した。 続いてhttpからhttpsへの301リダイレクトの設定。 マルチサイトだとここがうまくいかないというウェブ情報が散見されたが、単純に下記の二行をhtaccessのRewriteEngine onの下に書き足したら今の所うまく動いている。

RewriteCond %{HTTPS} off

RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

というわけで、多言語マルチサイトのhttps化でした。 微修正などがあれば追記予定。

D

 

 

Xserverでwordpressの言語別サイト分割

このブログはもともと一つのブログに私の日本語のブログと嫁の英語ブログを書いていた。 しかしgoogleなどの検索のことを考えると、英語と日本語のサイトは分けた方が良いという意見を耳にした。 そこでこのウェブサイトを、英語と日本語のサイトに分割することに挑戦してみることにした。 まだあまり投稿も増えていないので、マルチサイト作製に失敗しても初期化すればいいだろうと気楽なチャレンジであった。
ウェブでやり方をサーチしてみたところ、同じ試みをしている人は多い。 いくつかのウェブサイトを確認しながらであれば、素人でも十分に対応できそうである。 多少ファイルに直接アクセスして編集しないといけないところがあるが、普通に多言語化するだけであればコピーアンドペーストをするだけで良いので問題はないだろう。 詳しい説明はわかりやすいウェブサイトが多々あるので、この投稿では簡単な概略を書いておく。

始めは何はともあれ、バックアップをとるところから始める。 エックスサーバーは自動でバックアップが取られているようで、必要があれば数日前まで戻すことはできるようだ。 なのでとりあえずブログのテキストデータだけワードに貼り付けて保存することにする(下に記すがwordpressではxmlでサイトの情報の書き出しができた)。

続いてwordpressのセッティングをマルチサイト用に変える。 これはwp-configを編集する必要がある。エックスサーバーの場合ファイルマネージャーにアクセスして、wordpressのインストール先に存在しているはずだ。 編集は

define('WP_ALLOW_MULTISITE', true);

を足すだけだが、編集が必要なのはここまでですというコメントの上に足す必要があるので注意。
wordpressにログインし直すと、ツールタブからネットワークの設置ができるはずである。 指示通りにインストールをする。 私が設定したバージョン・条件では、ここでサブドメイン型にするかサブディレクトリ型にするかクリックすることで自分で選ぶことができた。 エックスサーバーでサブドメイン型は難しいという情報があったので、サブディレクトリでの設置を行うことにした。 あとはワードプレスの指示通りにwp-configに必要な情報を書き足し、またhtaccessを書き換える。

ここで再ログインすると参加サイトというタブができている。 サイトの新規追加に行き、サブディレクトリの名前を入れてサイトの作成を行う。 ここで私の場合何か問題があったのか、一つのサイトを追加した場合サブサイトの作成に成功することができなかった。 気にせずもう一つサブサイトを追加したところ今度は成功した。 二つとも消してやり直してみても1個目のサイトが作成できず、2個目だとできるというところは変わらなかったので、何かしら私のセッティングに問題があったのかもしれない。 詳しい原因がわかったら後に追記するかもしれないが、とりあえずはできたので良しということにした。

どうやらサブディレクトリで使おうとした名前と、同じ名前のサブドメインをすでに作っていたのが原因だったようだ。 何かしらが競合していたのだろう。 他の名前のものであれば問題なく作製できた。

あとはオリジナルのサイトからツールのエクスポートに行き、全てのコンテンツをxml形式でエクスポートする。 これをサブサイトでインポートすることでサイトのコピーができる。 あとはメインサイトから英語の記事を消して、サブサイトから日本語の記事を削除することで、言語別に分けることができた。
言語別サイトの管理は、Multisite Language Switcherで行うことにした。 このプラグインに関しては後ほど別記事で使い方を説明する

ということで、日本語盤と英語盤の投稿をのせるための言語別サイトを一つのWordPressに無事インストールすることができた。 運用上の問題点や改善点が出てきた場合は追記するなり、新記事を書くことにする。

D

Xserverでwordpressブログの始め方

オープンソースのブログ用ソフトウェアであるwordpressを使ってブログを始めた。 せっかくなので覚書に、プロセスをまとめておく。 レンタルサーバーはお手頃な値段帯の会社の中ではやや高めだが、評価がとても高かったxserver。 もちろんケースバイケースだが、値段がそれなりで評価が高いというのは信頼性が高いと思っている。
始め方の詳しい解説は多くのブログ、ウエブサイトがあるので、海外で始めるのに詰まったところを中心に簡単にまとめておきたい。

1 Xserverの契約

オンラインでの申し込み、最初は10日間の無料期間がある、とういかそれからしか始められない。 自分はとりあえず一番安いタイプx10で十分。 申し込み後しばらくしてから、電話による確認が必要とのメールが来る。 理由の説明はなかったが、これはおそらく海外からの申し込みによるものだろう。
xserverとのメールのやり取りと適切な手続き後、アカウント設定完了のメールを受信。 目的はwordpressをすることなので、無料期間内だが速やかに入金。 ドメインはその時やっていたキャンペーンで取得できた。

2 wordpressの設定

Xserverのサーバーパネルから自動インストールで一発でできる。 ただし、海外からは初期設定では管理ページにアクセスができない。 これは海外からのパスワード盗難を防ぐためのセキュリティー措置らしい。
そこで自分のIPアドレス限定で海外からのアクセスを許可するようにhtaccessに書き込む。 xxxは自分のグローバルIPアドレス。 しょっちゅう変更されるので、毎回変えなければならないのが難。

SetEnvIf Remote_Addr ^xxx\.xxx\.xxx\.xxx$ AllowCountry

アクセスの変更はXserverのサーバーパネルに行き、htaccessの編集というところからやれば良い。

3 後から初期に設定しておけばよかったかなと思ったこと(5/21/17追記)

マルチサイトで多言語化サイトなど運営したい場合の話だが、ssl化(https化)したいなら最初にやっておいた方が楽である。 特にエックスサーバーだと無料でできるので、始める時にやっておいた方が後で困難が少なくなる。
マルチサイトにすること自体も最初にやっておいた方が良い。 多少ではあるが手間がはぶける。
ファイルを直接いじらないといけないのが難だが、子テーマの作製は最初にやっておいた方がよいだろう。 テーマのアップデートでテーマに直接書き加えた変更点が消えるので、毎回書き直すのが結構大変だ。 私は諸事情で未だに親テーマを書き直さなけらばいけない状態になっていて結構大変。 あ、テーマ自体も変えるなら最初に変えといた方がよいでしょう。

D