Support » Plugin: Bogo » Filter REST API of CPT by locale

  • Resolved mikylucky

    (@mikylucky)


    Hi,
    i noticed that Bogo filters the results of the REST API calls on the locale base, but this doesn’t happen with CPT.

    Eg.
    If I call ‘/it/wp-json/wp/v2/posts’ it will return only the italian posts
    But if I call /it/wp-json/wp/v2/cpt’ it will return all the CPT posts

    How can I solve this?

Viewing 6 replies - 1 through 6 (of 6 total)
  • Plugin Author Takayuki Miyoshi

    (@takayukister)

    Because Bogo doesn’t localize CPTs by default. Adding CPT support is expained in this thread: https://wordpress.org/support/topic/cpt-suuport/

    Hi Takayuki,
    I already did that, in the Admin my CPT are translatable, the problem is only in the API call

    Problem solved: I adding the filter you suggested here only after checking if the Plugin was active.

    Moving the filter outside the if condition solved the problem.

    I noticed it after I discovered I could not translate the posts with the button in the editor page.
    With some debug I realized the function bogo_localizable_post_types() was not returning my CPT.

    @takayukister @mikylucky Hey guys, I came across this support question when I ran into something similar myself and was wondering if you could detail this a bit as I’m not sure I understood how you solved it.
    So I’m using a theme that has at least a couple CPTs (I only need 2 of these to be available in another language) and I’m also using woocommerce.

    If my understanding is correct, I’d have to use in the functions.php of the theme and somewhere (to be determined). How would this code need to be adapted to work for multiple CPTs since this is for just one.

    add_filter( 'bogo_localizable_post_types', 'custom_bogo_localizable_post_types' );
    
    function custom_bogo_localizable_post_types( $post_types ) {
    	$post_types[] = 'your_cpt_name';
    	return $post_types;
    }

    Would this work?

    add_filter( 'bogo_localizable_post_types', 'custom_bogo_localizable_post_types' );
    
    function custom_bogo_localizable_post_types( $post_types ) {
    	$post_types[] = 'your_cpt_name1';
            $post_types[] = 'your_cpt_name2';
            $post_types[] = 'your_cpt_name3';
    	return $post_types;
    }

    $post_types[] would be an array of the 3 names given?

    Thank you!

    • This reply was modified 2 years, 9 months ago by orangeworx.
    • This reply was modified 2 years, 9 months ago by orangeworx. Reason: corrected code
    • This reply was modified 2 years, 9 months ago by orangeworx. Reason: Corrected

    Here’s a small update to my trials:
    I’ve tried to add the earlier code to my child theme’s functions.php with no visible change. I tried it as initially posted here and as I wrote it in my previous comment, also without seeing the option to translate in the CPTs pages

    Any ideas?

    Ok so I figured out my mistake almost as soon as I posted my last comment… DOH!

    I’ve correct the code in my previous post to reflect correct code… I’ve yet to try to see functionality is good.

    I’ll get back with more updates.
    Hopefully it helps someone else

Viewing 6 replies - 1 through 6 (of 6 total)
  • The topic ‘Filter REST API of CPT by locale’ is closed to new replies.