Skip Navigation

Resolved

Reported for: WPML GraphQL 1.0.0

Topic Tags: Bug, Compatibility

Overview of the issue

When using GraphQL and utilizing a query similar to the following to retrieve Custom Post Types by slug, you will discover that it functions only for the posts in the default language:

query getArticlesByslug {
  article(id: "your-slug-goes-here", idType: SLUG) {
    title
    content
  }
}

Workaround

Please, make sure of having a full backup of your site before proceeding.

  • Open your theme’s functions.php file.
  • Add this code:
    add_filter('request', function($vars){
    
    	if ( is_graphql_http_request() && !empty($vars['name']) ) {
    		$vars['suppress_filters'] = true;
    	}
    
    	return $vars;
    });
    

9 Responses to “WPML GraphQL - Fails to Fetch Single Custom Post Type by Slug Based”

  1. We are are also experiencing this problem.
    We have a custom post type called “Teacher” – the URI for a specific teacher is “/underviser/karsten-lund/” in danish, and “/en/teacher/karsten-lund/” in english.
    When i query the contentNode by using:
    contentNode(id: “/underviser/karsten-lund/”, idType: URI) {
    id
    }

    I get the expected teacher
    But if i query:
    contentNode(id: “/en/teacher/karsten-lund/”, idType: URI) {
    id
    }

    I get null.

    • If the workaround here provided doesn’t work for your case, please open a chat in our assistance channel.
      We have the require tools for investigating your case there.

  2. Hi Andrés and WPML team,

    The workaround work for me but I got another problem:

    Below is my current query:
    “`
    query GetPostBySlug($slug: ID!) {
    post(id: $slug, idType: URI) {
    title
    }
    }
    “`

    When I’m querying with second language, I got the same result:
    “`
    query GetPostBySlug {
    post(id: “/vi/hello-world/”, idType: URI) {
    title
    }
    }
    “`

    Result:
    “`
    “data”: {
    “post”: {
    “title”: “The journey has just started!”
    }
    }
    “`

    Expeceted result:
    “`
    “data”: {
    “post”: {
    “title”: “Hanh trinh moi bat dau”
    }
    }
    “`