ジャーナル
-
2023.11.22
WordPress
アクセシビリティ
プラグイン
多言語
多言語サイト
多言語サイト(Multilingual Website)は、複数の言語でコンテンツを提供し、異なる言語圏のユーザーに対応するために設計されたウェブサイトです。 言語の選択と管理 サイトが提供する言語を選択し、それぞれの言語に対応するコンテンツを管理する必要があります。一般的な選択肢には、英語、スペイン語、フランス語、ドイツ語、中国語、日本語などがあります。これらの言語に基づいて、ユーザーが好みの言語を選択できるようにします。 URLの管理 各言語のコンテンツに対して、一貫性のあるURL構造を確立することが重要です。多くの場合、言語別にサブディレクトリ(例:/en/、/jp/)、サブドメイン(例:en.example.com、jp.example.com)、またはクエリパラメータ(例:?lang=en)を使用して言語を区別します。 メニューとナビゲーション サイトのメニューやナビゲーションは、利用可能な言語に基づいて適切に表示および構成される必要があります。これにより、ユーザーが容易に言語を切り替え、希望のコンテンツにアクセスできます。 コンテンツの翻訳 各ページのコンテンツは、対応する言語に翻訳される必要があります。翻訳プロセスは専門の翻訳者や翻訳サービスを利用して行われ、文化的な違いや地域差異にも注意が払われます。 地域ごとの法規制に対応 各言語圏における法規制や文化的な慣習に合わせて、サイトの内容やデザインを調整することが重要です。 言語切り替えの提供 ユーザーが簡単に言語を切り替えるためのオプションや、ブラウザの言語設定に基づいて自動的に適切な言語を選択する仕組みを提供します。 Wordpressのプラグイン「Bogo」 Bogoは、WordPressサイトに多言語機能を追加するためのプラグインです。このプラグインを使用すると、サイトのコンテンツを異なる言語に簡単に翻訳し、ユーザーが好みの言語で閲覧できるようになります。Bogoは、使いやすさと柔軟性を兼ね備え、WordPressユーザーが多言語サイトを構築するための手段として広く採用されています。 Bogoとは Bogoは、WordPressサイトに多言語機能を追加するためのプラグインです。このプラグインを使用すると、サイトのコンテンツを異なる言語に簡単に翻訳し、ユーザーが好みの言語で閲覧できるようになります。Bogoは、使いやすさと柔軟性を兼ね備え、WordPressユーザーが多言語サイトを構築するための手段として広く採用されています。 Bogoの主な機能 簡単な設定 Bogoは、専門知識がなくても簡単に設定できるように設計されています。プラグインを有効化するだけで、多言語機能が即座に利用可能になります。 言語の追加と管理 Bogoを使用すると、サイトに対応する言語を追加し、管理することができます。各言語には独自の設定が可能で、独自のURL構造や言語コードを指定できます。 記事やページの簡単な翻訳 Bogoは、記事やページの翻訳を手間なく行うためのユーザーフレンドリーなエディタを提供しています。Google翻訳などの外部サービスとの連携もサポートされています。 ウィジェットとショートコード Bogoは、ウィジェットやショートコードを使用して、サイト上で言語切り替えのリンクやフラグを簡単に配置できます。これにより、ユーザーがサイトの異なる言語バージョンにシームレスに移動できます。 Bogoの設定方法 プラグインのインストールと有効化 WordPressの管理画面から、「プラグイン」メニューに移動し、「新規追加」ボタンをクリックしてBogoを検索し、インストール・有効化します。 言語の追加 「設定」メニューから「Bogo」を選択し、言語を追加します。各言語には、言語コードやURL構造などを指定するオプションがあります。 記事やページの翻訳 管理画面で記事やページを選択し、対応する言語のコンテンツを入力します。Bogoのエディタを使用すると、翻訳が簡単に行えます。 ウィジェットやショートコードの配置 設定画面からウィジェットやショートコードを設定し、サイト上で言語切り替えのリンクやフラグを表示します。
-
2023.11.09
Movable Type
WordPress
分かりやすい!CMS比較公開
ご相談いただく内容で多いのが「CMSはどれを選べばいいのか」という話です。CMSは種類が多くてどれを使えばいいか皆さん悩まれるようですね。 そんなお悩みを解決すべくCMS比較を公開いたしました。 CMSの中でも人気のWordPress(ワードプレス)とMovable Type(ムーバブルタイプ)について比較しています。他にもCMSの種類はありますが、大抵この2つのどちらかで事足ります!かなりシンプルなので、Webにそんな詳しくないよという方にも分かりやすいCMS比較となっております。機能や価格やセキュリティなどの違いが一目で分かる表は、CMSで悩まれている方には必見です!Movable Typeの種類の違い(MovableType.net、Movable Type(ソフトウェア版)、Movable Type(クラウド版))も比較していますのでMovable Typeの種類で悩んでいる方にも見ていただきたいです。 下のバナーからCMS比較ページをご覧になれます。是非、ご活用ください!!
-
2023.10.27
WordPress
カスタムフィールドの値をカスタム投稿タイプを使った記事一覧へ表示する
投稿一覧や固定ページ一覧にカスタムフィールドの値を表示させる方法、という記事はよくあるので、今回はカスタム投稿タイプに紐づいた複数のカスタムフィールドの値を表示させる方法をご紹介します。 // カスタム投稿タイプ:hoge // カスタムフィールド:field_1 // カスタムフィールド:field_2 // カスタムフィールド:field_3 function manage_posts_columns($columns) { $columns['ex_company'] = "field_1"; $columns['ex_date'] = "field_2"; $columns['ex_state'] = "field_3"; return $columns; } function add_column($column_name, $post_id) { if( $column_name == 'ex_company' ) { $stitle = get_post_meta($post_id, 'ex_company', true); } if( $column_name == 'ex_date' ) { $stitle = get_post_meta($post_id, 'ex_date', true); } if( $column_name == 'ex_state' ) { $stitle = the_field('ex_state'); } if ( isset($stitle) && $stitle ) { echo attribute_escape($stitle); } else { echo __(''); } } add_filter( 'manage_hoge_posts_columns', 'manage_posts_columns' ); add_action( 'manage_hoge_posts_custom_column', 'add_column', 10, 2 ); 上記コードを functions.php に追記します。 以上です。
-
2023.10.05
WordPress
WordPressアドレスとサイトアドレスのドメインが違う場合の対処法
WordPressのシステムアドレスとサイトアドレスについて WordPressは管理画面から「WordPressアドレス」と「サイトアドレス」を設定できるようになっています。「WordPressアドレス」というのはシステムがインストールされているURLで、サイトアドレスはユーザーがサイトを見たときにフロントページが表示されるURLです。 このように通常は同一URLです。WordPressのシステム全体をひとつのディレクトリ内に納めることも可能で、その場合は「WordPressアドレス」を変更します。「WordPressアドレス」と「サイトアドレス」を個別に設定することで、管理画面のURLとユーザーがアクセスする画面のURLを分離させることができるのです。 管理画面のドメインが違う場合の問題 多くのサイトは管理画面もユーザー画面も同じドメインで運用します。ところが「管理画面のドメインを別にしたい」というお客様もいらっしゃいます。そのような場合はリバースプロキシというサーバを介することで実現できます。セキュリティレベルの向上や負荷分散などのメリットがありますが、WordPressはリバースプロキシ上で正常動作するようには作られていないため不具合が発生します。 どのような問題が起きるか サーバ技術者がリバースプロキシを適切に設定し「WordPressアドレス」と「サイトアドレス」のドメインを分離しても、ユーザー画面に出力されるソースコード内のハイパーリンクが「WordPressアドレス」のドメインになってしまいます。つまり、ブラウザのアドレスバーには「サイトアドレス」のドメインが表示される一方で、ソースコードには「WordPressアドレス」のドメインが混ざっている状態となり、これでは管理画面のドメインを隠したつもりがダダ洩れです。 解決策 この問題を解決するため、ユーザー画面側に出力されるハイパーリンクのURLを書き換えるアクションフックを functions.php に追記します。 // ドメインリライト function is_login_page() { return in_array($GLOBALS['pagenow'], array('wp-login.php', 'wp-register.php')); } if(is_admin() === false && is_login_page() === false){ function replace_domain_url($url){ $url = str_replace("●システム側のドメイン●","■ユーザー側のドメイン■",str_replace("href='//●システム側のドメイン●'","href='//■ユーザー側のドメイン■'",str_replace('href="https://●システム側のドメイン●"','href="/"',str_replace('https://●システム側のドメイン●/','/',$url)))); return $url; } function buf_start() { ob_start("replace_domain_url"); } function buf_end() { ob_end_flush(); } add_action('after_setup_theme', 'buf_start'); add_action('shutdown', 'buf_end'); } ブロックエディタが使えない問題 ユーザー側に出力されるハイパーリンクのドメインをすべて書き換えてひと安心、と思いきや、今度はブロックエディタが正しく機能しないという問題が起こります。これは REST API のURLに起因する不具合なので、次のようなフィルターフックを functions.php に追記します。 // REST APIのURLリライト add_filter( 'rest_url', 'rest_url_replace' ); function rest_url_replace($url){ if (is_admin())$url = str_replace(home_url(), site_url(), $url); return $url; } 運用上の注意 もともとイレギュラーな施策をしているので、これらの手法が万全というわけでもなく、またWordPressのアップデートなどにより予期せぬ不具合が発生する可能性もあります。サイトの運用にあたってはそのあたりのリスクを念頭に日常的な監視が必要になってくるかと思います。