Edited at

WordPress Bogo をカスタム投稿タイプでも使う

More than 1 year has passed since last update.


Bogo とは

https://ja.wordpress.org/plugins/bogo/

WordPressで多言語サイト運用するならこのプラグインが便利。

カスタム投稿タイプでも使うにはちょっとしたカスタマイズが必要


コード

プラグインで bogo_localizable_post_types というフィルターフックが用意されてるのでそれを使えばOK。

$localizable に投稿タイプ名が配列で入るので、加える。


my_localizable_post_types1.php

<?php

/**
* Support custom post type with bogo.
*
* @param array $localizable Supported post types.
* @return array
*/

function my_localizable_post_types( $localizable ) {
$localizable[] = 'custom_post_type_name';
return $localizable;
}
add_filter( 'bogo_localizable_post_types', 'my_localizable_post_types', 10, 1 );

複数のカスタム投稿タイプを追加する場合は $localizable[] = 'custom_post_type_name'; の複数行記述すればよいが、いちいち投稿タイプを書くのは面倒という場合は get_post_types() 使えばよい。

https://developer.wordpress.org/reference/functions/get_post_types/

例は public なカスタム投稿タイプを全て追加するコード。


my_localizable_post_types2.php

<?php

/**
* Support custom post type with bogo.
*
* @param array $localizable Supported post types.
* @return array
*/

function my_localizable_post_types( $localizable ) {
$args = array(
'public' => true,
'_builtin' => false
);
$custom_post_types = get_post_types( $args );
return array_merge( $localizable, $custom_post_types );
}
add_filter( 'bogo_localizable_post_types', 'my_localizable_post_types', 10, 1 );