ロードバランサーはランニングコストが高いので一時休止しています。
1. 第17回 【WordPress】 プラグイン パーマリンク設定
環境:Debian 9 php 7.0 Apache 2.4.25 MySQL 5.7 Cocoon
目的:「-2」問題を解消する
このプラグインは「Tokyo2020 unofficial 非公式」利用している説明だと思ってください。
このプラグイン「Custom Permalinks」を導入するだけで解消します。
「Apache 2.4」では、権限設定の変更を行わないと、パーマリンク設定が「基本」以外に設定できません。「基本」以外に設定した場合、「404 not found」になってしまい、思いっきりつまづきます。
この問題点の解決は、第7回で書いていますので、参考にしてください。
「第7回 GCP WordPressの「apache2.conf」を編集する」
「-2」問題とは
- 「パーマリンク設定」で最後の部分を「数字」で終わらす場合です。
「Tokyo2020 unofficial 非公式」では、大いに活躍してくれています。
「例、37-Kagawa – 香川 1003 Shrine, Temple – 神社仏閣」というタイトルで、
「URL例、https://www.tokyo2020unofficial.com/ja/37-kagawa/1003-shrine-temple-037」としています。
もし、「Custom Permalinks」をインストールしていないと、
「URL例、https://www.tokyo2020unofficial.com/ja/37-kagawa/1003-shrine-temple-037-2」
最後に「-2」が付いてしまいます。この現象は、WordPressの投稿IDを数字で管理しているがために発生する現象ということみたいです。
- WordPress「Custom Permalinks」
インストール、有効化
1.1 「Custom Permalinks」インストール
- 「WordPress管理画面」「プラグイン」「新規追加」をクリックして、「Custom Permalinks」を検索します。
- 「今すぐインストール」をクリックして、次へ進みます。
1.2 有効化
- 「有効化」します。
1.3 設定
- 「何もしません」
WordPressの投稿IDは数字で管理されています。そのため、パーマリンク設定の最後のスラッグは数字のみではエラーが発生してしまう可能性が高いということです。
「例、https://tohyo2020.org/1234/」とした場合などです。
↓
「例、https://tohyo2020.org/abcd-1234/」とすると数字だけではないのでエラーが発生することはなさそうです。
パーマリンク設定の極端な例です。
数字があると、その表示のリンクにきっちりアクセスしてくれます。
日本の城:「https://www.tokyo2020unofficial.com/ja/00-japan/1004-castle-000/」
北海道の城:「https://www.tokyo2020unofficial.com/ja/01-hokkaido/1004-castle-001/」
沖縄の城:「https://www.tokyo2020unofficial.com/ja/47-okinawa/1004-castle-047/」
最後の数字がないとどうなるか。
最後のスラッグはすべて「1004-castle」です。数字を付けていません。
日本の城:「https://www.tokyo2020unofficial.com/ja/00-japan/1004-castle/」
北海道の城:「https://www.tokyo2020unofficial.com/ja/01-hokkaido/1004-castle/」
沖縄の城:「https://www.tokyo2020unofficial.com/ja/47-okinawa/1004-castle/」
試しにクリックしてみると分かります。「北海道から沖縄県までのすべての城」のリンクが「日本の城」に転送されてしまいます。
最後に都道府県コードを入れて、「スラッグを変更するしかないか」
最後に「数字を入れると」、「-2」問題という壁にぶつかってしまいます。
なぜ数字にこだわるのか
数字が世界最強の言語だと思うからです。都道府県コードは国が定めています。普遍的です。その数字によって「どこに何があるのか」近いのか遠いのかなどが分かります。
私が設定している、「投稿ページの不可思議なタイトル」
「例、38-Ehime – 愛媛 1004 Castle – 城」
「例、39-Kochi – 高知 1004 Castle – 城」
数字とローマ字が分かれば、近いところに城があるんだなって分かります。
1.4 パーマリンク設定
通常のパーマリンク設定であれば、「投稿名」を選択します。「投票2020」でもそうしています。「Tokyo2020 unofficial 非公式」が特殊だからです。
パーマリンク設定も下記の画面の通り、
「例、https://www.tokyo2020unofficial.com/ja/37-kagawa/1003-shrine-temple-037/」
「例、https://独自ドメイン/日本語言語コード/カテゴリ/投稿名/」
にしています。特殊な事情は下記に記載しています。
1.5 ユーザー名は言語別
- 日本語:「Japanese」さん
- 英語:「English」さん
下記画面で投稿する際に、「どの言語で投稿するか」という選択ができるようになっています。普通は、「誰が投稿するか」だと思います。
これによって、
「言語ごとのサブドメイン型」
ではなく
「Googleが推奨するサブディレクトリ型」
の多言語サイトにすることができます。
WordPressで多言語化を紹介するサイトで良く見かけるのは「Polylang」と「Lingotek Translation」を連携させるやり方です。私も一度導入してみました。やめました。
理由は、いくつかありますが、代表的なものとして、
- 日本語固有の言葉をインラインコードで翻訳されないようにしたところ、インラインコードの途中から翻訳されてしまうことが多発しました。
- 多言語にすると、「カテゴリ」が「カテゴリ-1」「カテゴリ-2」となっていきます。自分で好きなようにはできません。投稿名も同様です。
これでは、多言語化っぽい状態で、私が管理しにくいのだから、「Googleが評価する際も一緒」だろうと思い見合わせました。
それゆえ、
「ユーザー名は言語別」で「スラッグ」も「言語コード」を反映したものにしています。
そもそも、なぜインラインコードを利用するのか
「GCP」を利用する上で「Google公式」を非常に良く読まないと設定できない項目が沢山ありました。
英語、日本語問わず読んでみた時、翻訳してはならない固有の設定部分に、インラインコードが引いてあったことから思いついたことです。
そのインラインコードを無視され、途中から翻訳されてしまったのでは、全く意味のないものが出来上がってしまうと思い、導入を見合わせました。
下記の画面が、「誰が投稿するのか」を「どの言語で投稿するのか」に置き換えたものです。
1.6 私の特殊な事情
この仕組み「Tokyo2020 unofficial 非公式」で利用し始めています。
実際には、どのようになるか。
- 「例、https://www.tokyo2020unofficial.com/ja/00-japan/0003-japanese-sake-nihonshu/」
- 「例、https://独自ドメイン/日本語言語コード/カテゴリー/投稿名/」
- 「例、https://www.tokyo2020unofficial.com/en/00-japan/0003-japanese-sake-nihonshu-en」
- 「例、https://同時ドメイン/英語言語コード/カテゴリー/投稿名/」
赤字で記した箇所が、投稿者スラッグです。
- 「ja」=日本語=「Japanese」さんというニックネーム
- 「en」=英語=「English」さんというニックネーム
1.7 英語対応では④の部分も追加
最後の「投稿名」スラッグが同一の場合、上記でも説明したとおり、「投稿ページ一覧」で上位に表示されている「投稿ページ」に転送されてしまいます。そのため、最後にも「言語コード」を付記しています。
1.8 さいごに
「投票2020」もそうですが、ほとんどの人が「パーマリンク設定」にそこまでのこだわりはないと思います。
結局のところ、どのようなページになっているのかが「URL」で分かる。
これがいちばん重要なことだと思います。
「Tokyo2020 unofficial 非公式」は特殊ですが、これから、WordPressで多言語化をする人の参考になればと思います。
第16回「Edit Author Slug」と、第17回「Custom Permalinks」を組み合わせた時に、最高の多言語対応の「パーマリンク設定」が出来上がります。
「Googleが推奨するサブディレクトリ型」の「多言語対応WordPress」は他にもあるのでしょうけれど、プロのカスタマイズが必要だと思います。単なる機能の説明は山ほどあるけど、少し風変わりな物語も良いでしょ。
あーーーー、これ、自慢したかったんだよなー。ちっっさい男だ。わたし。
【コメント】 ※「メールアドレス不要」