plugins
多言語対応化プラグイン Polylang の使い方
2019年5月17日 金曜日弊社でも商品やサービスの販売先を海外に求めたり、外国人客を取り込むクライアントさまの多言語サイトをいくつか制作するようになりました。 WordPressの多言語プラグインは有料のWPMLをはじめいろいろありますが、弊社は Polylang を使いました。
Polylang のしくみ
Polylangは、1つのカテゴリーの1つの投稿を各言語で書き分けるのではなく、言語ごとのカテゴリーに、同じ内容でそれぞれの言語であらわす投稿を存在させて、 これを積み重ね合わせて、別の言語で書いている投稿の画面へ一度閉じて一覧から選び直すことなく1クリックでダイレクトに移動して編集できるようにするもので、WordPressの構造的には基本的な複数のカテゴリーと投稿がある状態と変わりありません。

Polylang の設定
以下は弊社のお客様のサイト制作での手順ですが、Polylang をインストール&有効化のあと、管理画面サイドメニュー「言語」から「言語」を開いて、作成する言語を追加します。 ★ の欄でマウスを滑らせて、デフォルトの言語を設定してください。この場合は「日本語」をデフォルトで選んでいます。 日本語のURLはドメイン、英語はドメイン/en/ など、ドメイン直下に仮想で言語のディレクトリがあるURLを採用しました。 テンプレートをカスタマイズするときは home_url はこの場合自動的に、日本語ではドメイン、英語ではドメイン/en/ になるので、全言語共通で使うimgやCSSの読み込みのURLパスは home_url を使わないなど、注意と工夫が必要です。

「同期」ではアイキャッチ画像やカスタムフィールドで全言語共通で使う項目があったので以下のように設定しました。

投稿の方法と注意
Polylangを有効にすると、投稿画面の右上に「言語」のメタボックスが出現しますが、一番上のプルダウンは今から編集する言語を確認するもので、ここから同じ内容の投稿の他言語での編集画面には移動できません。 間違って操作すると修復がとても面倒なので基本的に触らないようにしましょう。 その下の「翻訳」のそれぞれの国旗の横の+マーク(一度投稿済みなら鉛筆マークに変わる)から移動すれば、それぞれの言語の同じカテゴリーの同じ内容の投稿が関連づいて生成します。 この関連が公開後にユーザー閲覧側で「言語切替スイッチ」に反映され、見ているページの他言語への移動が国旗や国名のリンクをクリックすることで移動できるようになります。
テンプレートにおける言語での条件分岐の書き方
ディレクトリの en や zh ではなくロケールで記述する必要があります。
<?php $locale = get_locale(); ?> <!-- 言語条件分岐を行う前に記述必須 --> <?php if($locale == 'en_GB'): ?> English.English.English.English.English.English.English. <?php elseif($locale == 'ja'): ?> 日本語。日本語。日本語。日本語。日本語。日本語。日本語。日本語。 <?php endif; ?>
言語切替スイッチ
言語切替スイッチはウィジェットのパーツで使えるようになりますが、テンプレートに設置したい場合は以下のように書きます。
<?php pll_the_languages(array('show_flags'=>1,'show_names'=>'')); ?>
言語切替スイッチの国旗のデザインを替えたい
wp-content/polylang/ に デザイン変更した 言語ロケール.png (例 en_GB.png) を置いてください。
外注のカスタム投稿タイプのパーマリンク設定
2016年8月4日 木曜日外注のカスタム投稿タイプの「カテゴリー名」を変えたら”自動転送ループ”になってしまって、どうしたらよいかたずねたら「パーマリンク設定が post_id になってるか?」というのです。
本体のパーマリンク設定は post_id になっているけれど、カスタム投稿タイプの記事はpostnameのようだが、どこで変えるのや?と思ったら、
そういうことを可能にするプラグインがあるんですね。
正常化したけれど、そもそもなんで今まで何の支障もなかったのやろ・・・?
クライアントの運用に支障なく、ほそぼそと陰でWordPressサイトでスマホ用などの新テーマを準備する方法
2016年7月13日 水曜日PC閲覧のWordPressサイトを運用中のクライアント様に「スマホ対応」テーマを新たに用意する、
今の御時世、そういう案件少なくないですよね。
ローカルなどで開発環境つくって準備すればいいといえば、そうなんですけど、
本番環境で「WP Theme Test」というプラグインをつかって、ログイン時にオモテのページを見れば新テーマが適用されるという、便利な方法があります。
でも、ログイン時にオモテのページが新テーマになったら「管理者」の権限をもっているクライアント様の場合、
更新時に、反映を確認するのは他のブラウザと併用してね、とか、お手間をとらせることになる。
そこで、クライアント様の運用に支障なく、ほそぼそと陰でWordPressサイトでスマホ用などの新テーマを準備するには、プラグイン「User Role Editor」をつかって、「開発者」の権限グループをつくって、
「開発者」のログインに対してだけ新テーマが適用されるようにすればよいのです。
構築は、「開発者」でログインして行い、クライアント様に進捗を確認いただくのも「開発者」でログインしてもらえばいいのです。
1. ユーザー > User Pole Editorで、「Add Role(ユーザー権限の追加)」をして、一覧のチェックボックスに全部チェックを入れて、
「管理者」と同等の新しい権限を作成します。(ここでは「エンジニア」にしました。) 2. ユーザーを新規追加して、「エンジニア」の権限を付与します。 3. 外観 > WP Theme Testで、「テストテーマ」で開発する新テーマを選択し、「表示する権限グループ」で「エンジニア」を選んで、「現在の状態」をOnにして、完了です。
これで、クライアント様の運用に気兼ねなく、新テーマの開発が可能です。
NextGEN GalleryとWP jQuery Lightboxを併用してレスポンシブ対応のギャラリーをつくる
2014年1月31日 金曜日NextGEN Gallery自体はデフォルトではレスポンシブに対応していませんから、
横並び1列の画像数は表示カラム数を指定せず、「Gallery Settings」の「NextGEN Basic Thumbnails」にある、
「Number of columns to display」の値は0にしておいて、CSSのwidthを適切な%で設定しましょう。
NextGEN GalleryのAjaxによる拡大表示はデフォルトではFancyBoxですが、Lightboxに切り替えが出来ます。
しかし、レスポンシブデザインでは、拡大画像はそれぞれのデバイスモニタのサイズ以内でないと困りますよね。
プラグイン「WP jQuery Lightbox」なら、デバイスモニタにあわせて拡大画像を表示する設定ができます。
このWP jQuery Lightboxの機能をNextGEN Galleryで有効にするには、
「Other Options」の「Lightbox Effects」で、「Lightox」に切り替えたうえで、
codeを「class=’ngg_lightbox’」から「rel=”lightbox”」に書き換えて、
「Stylesheet URL」と「Javascript URL」の記述を全部削除してセーブすれば、
拡大画像はデバイスモニタに応じたを表示になります。
この設定はそれぞれのプラグインをインストールしてとくに何も触っていない状態で、
かつ干渉を受けるような他のプラグインがない状態で可能になりましたので、
何か手を入れられている場合は同様の結果になるかの保証はありませんので、あしからず。
投稿時のプラグインのバージョン
NextGEN Gallery 2.0.40
WP jQuery Lightbox 1.4.5
マルチサイト化して特権管理者になったadminは削除して振替出来ない
2013年4月16日 火曜日WordPressがデフォルトで設定する adminアカウントを
インターネット上で公開されている辞書ツールを使って、考えられるあらゆるパターンのパスワードを順番に試すという大規模無差別攻撃(ブルートフォースアタック)なるものがいま横行していて、少なからずある、弊社で管理する該当サイトの対策処置にすったもんだしておりました。
一番手っ取り早く単純で効果もあるのはadmin以外に「管理者」ユーザーを立てて、そのユーザーでログインしてadminを削除する、という方法です。
その場合削除するadminで書いた記事などは残すユーザーに「アサイン」するのを忘れるといっかんのぱあ、になりますので気をつけましょう。
ところで、マルチサイト化して特権管理者になったadminは削除して振替が出来ないんですね・・・
(phpMyAdminでできるっちゃあ、できるんですけど、デザイン畑でプログラムに疎いもので・・・)
仕方ないので、その場合は目線を変えて、
「adminでパスワード入力に繰り返し失敗したら、一定時間アクセスできなくなる」
というプラグイン(Simple Login Lockdown)を使うというのも手ですし、
「ログイン画面のURLを変えちゃう」
というプラグイン(Stealth Login Page)などもあるので、代用するのがよいかと思います。
(参考にさせていただいた記事)