This thread is resolved. Here is a description of the problem and solution.
Problem: You are using WPML with WP Recipe Maker (WPRM) and encountering issues where the recipe card in a translated post does not automatically switch to the corresponding translated recipe. Instead, it retains the original English recipe card, requiring manual replacement to display the correct language version. Solution: This behavior is expected as per the plugin author’s documentation. WPRM treats recipes as independent custom post types, and when inserted via a shortcode like
[wprm-recipe id="123"]
, the ID is treated as a static reference. To address this, you can use the XML configuration approach you've set up. After saving the XML configuration, you should open the translation in the WPML editor, search for the recipe ID, and manually replace it with the corresponding translated recipe ID. This manual step is necessary because WPRM does not support automatic translation or ID switching for recipe cards.
If this solution does not resolve your issue or seems outdated, we recommend checking related known issues at https://wpml.org/known-issues/, verifying the version of the permanent fix, and confirming that you have installed the latest versions of themes and plugins. If further assistance is needed, please open a new support ticket at WPML support forum.
This is the technical support forum for WPML - the multilingual WordPress plugin.
Everyone can read, but only WPML clients can post here. WPML team is replying on the forum 6 days per week, 22 hours per day.
Hello,
I’m currently using WPML together with WP Recipe Maker, and I need clarification about how recipe translations should work.
Here is my current setup and issue:
My original posts are in English
Inside each post, I use a WPRM recipe card (created in English)
Each recipe card has its own ID (shortcode)
I translated the recipe cards using WPML → Translation Dashboard
I also translated all related strings via WPML String Translation
I translated the posts into other languages (French, German, etc.)
The problem:
When I translate a post (for example, from English to French), the recipe card inside the translated post remains the original English one (same ID), instead of automatically switching to the translated recipe.
The only way I currently get the correct translated recipe is:
Open the translated post (e.g. French)
Manually replace the English recipe card with the French translated version
My questions
Is this the expected behavior when using WPML with WPRM?
Is there a way to automatically link translated recipe cards to translated posts, so that:
English post → English recipe
French post → French recipe
without manual replacement?
Should recipe cards be translated as:
“independent custom post types”
or is there a specific setting required for proper synchronization?
Are there recommended settings (WPML → Settings, or WPRM compatibility options) to enable automatic switching of translated recipes?
Goal
I would like to avoid manually editing each translated post just to replace the recipe card, especially since I have many recipes.
* saved the XML configuration
* updated the original English post
* updated the translation
* checked both the backend and the frontend
However, the recipe card still remains the English one, also on the frontend.
At this point, could you please clarify something explicitly:
Is WPML actually supposed to automatically switch a WPRM shortcode like `[wprm-recipe id="..."]` to the translated recipe ID when using separate translated recipe cards?
Or, with WP Recipe Maker, is the correct workflow to manually replace the English recipe card with the translated recipe card inside each translated post?
I am asking because WP Recipe Maker’s own multilingual documentation says their recommended approach is to create a separate recipe for each language and add those recipes to the different posts, and that “there will be no automatic translation.”
So before I continue working on many recipes manually, I need to know clearly whether:
1. automatic ID switching for separate translated WPRM recipe cards is officially supported by WPML in this case, or
2. manual replacement is the expected workflow.
If automatic switching is supported, could you please provide the exact supported configuration or confirm whether this requires a different shortcode setup / different integration approach?
Thank you for the detailed explanation it really helps clarify the situation.
1) Based on the plugin author’s documentation, this behavior is expected. WP Recipe Maker (WPRM) recipes act as independent custom post types, and when inserted via a shortcode like [wprm-recipe id="123"], the ID is treated as a static reference. If you were using a dynamic approach (for example, querying recipes by category), then automatic language switching would be more likely to work as expected.
2) You can also try the XML configuration approach you mentioned it looks correctly set up. In that case, you would need to open the translation in the WPML editor, search for the recipe ID, and manually replace it with the corresponding translated recipe ID.
Let me know if how it goes and if you need further help.
thank you for the clarification, it’s very helpful.
I understand now that, when using WP Recipe Maker with separate translated recipe cards, the recipe ID inside the shortcode is treated as a static reference and is not automatically switched by WPML.
So the correct workflow in this case is to manually replace the recipe ID in the translated post with the corresponding translated recipe.
I appreciate the confirmation, this clears things up and helps me proceed correctly.