WEBサイト多言語化ツール-spoke

WEBサイト(ホームページ)多言語化プラグインBOGOのカスタム投稿タイプへの対応手順

1. カスタム投稿タイプをBogoに対応させる

1-1. functions.php にコードを追加

  • publicなカスタム投稿タイプをすべて追加します
/**
 * Support custom post type with bogo.
 *
 * @param array $localizable Supported post types.
 * @return array
 */
function spoke_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', 'spoke_localizable_post_types', 10, 1 );

1-2. カスタム投稿タイプのページにも、Bogoの言語設定が可能になる事を確認

Bogo設定

2. カスタム投稿タイプをWP REST APIから出力できるようにする

2-1. functions.php にカスタム投稿タイプを出力するための設定を追加

/**
* Register a book post type, with REST API support
*
* Based on example at: http://codex.wordpress.org/Function_Reference/register_post_type
*/
add_action( 'init', 'infos_cpt' );
function infos_cpt() {
    $labels = array(
        'name'               => _x( 'Infos', 'post type general name', 'your-plugin-textdomain' ),
        'singular_name'      => _x( 'Info', 'post type singular name', 'your-plugin-textdomain' ),
        'menu_name'          => _x( 'Infos', 'admin menu', 'your-plugin-textdomain' ),
        'name_admin_bar'     => _x( 'Info', 'add new on admin bar', 'your-plugin-textdomain' ),
        'add_new'            => _x( 'Add New', 'info', 'your-plugin-textdomain' ),
        'add_new_item'       => __( 'Add New Info', 'your-plugin-textdomain' ),
        'new_item'           => __( 'New Info', 'your-plugin-textdomain' ),
        'edit_item'          => __( 'Edit Info', 'your-plugin-textdomain' ),
        'view_item'          => __( 'View Info', 'your-plugin-textdomain' ),
        'all_items'          => __( 'All Infos', 'your-plugin-textdomain' ),
        'search_items'       => __( 'Search Infos', 'your-plugin-textdomain' ),
        'parent_item_colon'  => __( 'Parent Infos:', 'your-plugin-textdomain' ),
        'not_found'          => __( 'No infos found.', 'your-plugin-textdomain' ),
        'not_found_in_trash' => __( 'No infos found in Trash.', 'your-plugin-textdomain' )
    );

        $args = array(
        'labels'             => $labels,
        'description'        => __( 'Description.', 'your-plugin-textdomain' ),
        'public'             => true,
        'publicly_queryable' => true,
        'show_ui'            => true,
        'show_in_menu'       => true,
        'query_var'          => true,
        'rewrite'            => array( 'slug' => 'info' ),
        'capability_type'    => 'post',
        'has_archive'        => true,
        'hierarchical'       => false,
        'menu_position'      => null,
        'show_in_rest'       => true,
        'rest_base'          => 'infos',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
        'supports'           => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' )
    );

    register_post_type( 'info', $args );
}

3. SPOKEへの設定追加

3-1. SPOKEでカスタム投稿タイプを同期する

SPOKEでカスタム投稿タイプを同期させることで、WordPressのカスタム投稿タイプの投稿を取得するが可能になります。

image

 

「カスタム投稿タイプを同期」をクリックして、同期させてください。 image

3-2. 正しく取り込みが出来る事の確認

カスタム投稿タイプの投稿の取得に成功すると、投稿ページと同じようにコンテンツの一覧に表示されるようになります。