こんにちは!株式会社プロットハブのエンジニア小野です。
前回に引き続きBogoについて紹介していきます。
今回はカスタム投稿を多言語対応する方法を紹介します。
Bogoやカスタム投稿の多言語化はデフォルトではできないのでfunctions.phpにコードを追加する必要があります。
Bogoの設定方法や使い方については以下の記事を参考にしてください。
WordPressサイトをBogoで簡単に多言語化!手軽に始める方法を解説
【リライトルールを修正】Bogoでタクソノミーのアーカイブが404になる
WordPressでBogoの言語スイッチャーをカスタマイズする
カスタム投稿を多言語化する
Bogoにはbogo_localizable_post_types
というフィルターフックがあります。
このフィルターフックを使うことでカスタム投稿を多言語化することができます。
functions.phpにコードを記載します。
functions.phpを変更する際は必ずバックアップを取ってから変更してください。
全てのカスタム投稿を多言語化する場合
全てのカスタム投稿を多言語化する場合はget_post_types()関数を使ってカスタム投稿を取得します。
get_post_types関数で全てのカスタム投稿を取得してその値を配列に追加することで多言語対応させることができます。
全てのカスタム投稿を多言語対応したい場合は以下のように記述するだけで多言語化できます。
function my_localizable_post_types($localizable) {
$args = [
'public' => true,
'_builtin' => false
];
$custom_post_types = get_post_types($args, 'names');
return array_merge($localizable, $custom_post_types);
}
add_filter( 'bogo_localizable_post_types', 'my_localizable_post_types', 10, 1 );
特定のカスタム投稿を多言語化する場合
特定のカスタム投稿を多言語化する場合は以下のように記述します。
全てのページを多言語対応すると管理が煩雑になるため特定のカスタム投稿のみ多言語対応したい場合に有効です。
$localizableに多言語化したいカスタム投稿のスラッグを追加してください。
custom_post_typeをご自身のカスタム投稿に合わせて変更してください。
function my_localizable_post_types($localizable) {
$localizable[] = 'custom_post_type';
return $localizable;
}
add_filter( 'bogo_localizable_post_types', 'my_localizable_post_types', 10, 1 );
まとめ
フィルターフックを使用することで簡単にカスタム投稿を多言語化することができます。
BogoはSEO対策もしやすく、多言語対応も簡単にできるのでWordPressで多言語化をしたい方はぜひ使ってみてください。
弊社ではWordPressで多言語化をしたい方のサポートも行っておりますのでお気軽にお問い合わせください。
コメント