{"id":314232,"date":"2026-05-23T10:21:18","date_gmt":"2026-05-23T10:21:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/multisite-translation-relations\/"},"modified":"2026-05-23T10:20:45","modified_gmt":"2026-05-23T10:20:45","slug":"multisite-translation-relations","status":"publish","type":"plugin","link":"https:\/\/tuk.wordpress.org\/plugins\/multisite-translation-relations\/","author":23501078,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.4","stable_tag":"1.0.4","tested":"6.9.4","requires":"6.4","requires_php":"8.1","requires_plugins":null,"header_name":"Multisite Translation Relations","header_author":"Mudos Digital","header_description":"Manage multilingual post and page relationships across WordPress Multisite with hreflang, health audit, and safe repair tools.","assets_banners_color":"6c7d8d","last_updated":"2026-05-23 10:20:45","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/mudosdigital.com\/multisite-translation-relations\/","header_author_uri":"https:\/\/mudosdigital.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":46,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.4":{"tag":"1.0.4","author":"mudosdigital","date":"2026-05-23 10:20:45"}},"upgrade_notice":{"1.0.4":"<p>Adds dynamic multisite locale discovery for newly created language subsites. No public updater or external service dependency is included.<\/p>","1.0.3":"<p>Review polish release for WordPress.org submission. No public updater or external service dependency is included.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3544998,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3544998,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3544998,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3544998,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.4"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3544998,"resolution":"1","location":"assets","locale":"","width":1180,"height":684},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3544998,"resolution":"2","location":"assets","locale":"","width":1180,"height":858},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3544998,"resolution":"3","location":"assets","locale":"","width":1180,"height":858},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3544998,"resolution":"4","location":"assets","locale":"","width":1180,"height":858},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3544998,"resolution":"5","location":"assets","locale":"","width":1180,"height":858}},"screenshots":{"1":"Network settings with enabled post types and site locale mapping.","2":"Posts and pages list with Language and Relations data.","3":"Translation Health audit summary and issue filters.","4":"Repair Tools preview and apply flow.","5":"Frontend language switcher and hreflang output."}},"plugin_section":[],"plugin_tags":[2993,99,441,144346,3917],"plugin_category":[48,51],"plugin_contributors":[264112],"plugin_business_model":[],"class_list":["post-314232","plugin","type-plugin","status-publish","hentry","plugin_tags-hreflang","plugin_tags-multilingual","plugin_tags-multisite","plugin_tags-translation-management","plugin_tags-translations","plugin_category-language-tools","plugin_category-multisite","plugin_contributors-mudosdigital","plugin_committers-mudosdigital"],"banners":{"banner":"https:\/\/ps.w.org\/multisite-translation-relations\/assets\/banner-772x250.png?rev=3544998","banner_2x":"https:\/\/ps.w.org\/multisite-translation-relations\/assets\/banner-1544x500.png?rev=3544998","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/multisite-translation-relations\/assets\/icon-128x128.png?rev=3544998","icon_2x":"https:\/\/ps.w.org\/multisite-translation-relations\/assets\/icon-256x256.png?rev=3544998","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/multisite-translation-relations\/assets\/screenshot-1.png?rev=3544998","caption":"Network settings with enabled post types and site locale mapping."},{"src":"https:\/\/ps.w.org\/multisite-translation-relations\/assets\/screenshot-2.png?rev=3544998","caption":"Posts and pages list with Language and Relations data."},{"src":"https:\/\/ps.w.org\/multisite-translation-relations\/assets\/screenshot-3.png?rev=3544998","caption":"Translation Health audit summary and issue filters."},{"src":"https:\/\/ps.w.org\/multisite-translation-relations\/assets\/screenshot-4.png?rev=3544998","caption":"Repair Tools preview and apply flow."},{"src":"https:\/\/ps.w.org\/multisite-translation-relations\/assets\/screenshot-5.png?rev=3544998","caption":"Frontend language switcher and hreflang output."}],"raw_content":"<!--section=description-->\n<p>Multisite Translation Relations helps WordPress Multisite networks connect posts and pages that represent the same content in different languages.<\/p>\n\n<p>The plugin stores relation metadata on each content item, provides admin columns and row actions for editors, outputs frontend language switcher markup, and adds SEO-friendly hreflang tags for published related content.<\/p>\n\n<p>This is not an automatic translation plugin. It manages relationships between translated content that editors create or link across subsites.<\/p>\n\n<p>Documentation: https:\/\/mudosdigital.com\/multisite-translation-relations\/<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Link translated posts and pages across WordPress Multisite subsites.<\/li>\n<li>Create translation drafts on target language sites.<\/li>\n<li>Link existing translated content without duplicating posts.<\/li>\n<li>Prevent duplicate translations for the same language.<\/li>\n<li>Site locale mapping.<\/li>\n<li>Language and relation admin columns for supported post types.<\/li>\n<li>Translation relation metabox.<\/li>\n<li>Frontend language switcher shortcode: <code>[mstr_language_switcher]<\/code>.<\/li>\n<li>Hreflang alternate output for published singular content.<\/li>\n<li>Translation Health audit screen.<\/li>\n<li>Safe repair tools for missing language metadata.<\/li>\n<\/ul>\n\n<h4>Use cases<\/h4>\n\n<ul>\n<li>Editorial multisite networks where each language is a subsite.<\/li>\n<li>Teams that translate selected pages manually and need relation management.<\/li>\n<li>SEO workflows that need consistent hreflang output from relation data.<\/li>\n<li>Site owners who need to audit legacy multilingual relation metadata.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>multisite-translation-relations<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Network activate the plugin from Network Admin &gt; Plugins.<\/li>\n<li>Open Network Admin &gt; Settings &gt; Multilingual Relations.<\/li>\n<li>Confirm enabled post types and site locale mapping.<\/li>\n<li>Open Network Admin &gt; Settings &gt; Translation Health.<\/li>\n<li>Run the audit and review relation health before making bulk edits.<\/li>\n<\/ol>\n\n<p>The plugin requires WordPress Multisite. On single-site installs it shows an admin notice and does not boot relation features.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20uninstalling%20the%20plugin%20remove%20translation%20metadata%3F\"><h3>Does uninstalling the plugin remove translation metadata?<\/h3><\/dt>\n<dd><p>No. The uninstall routine intentionally preserves <code>mstr_post_language<\/code>, <code>mstr_translation_group<\/code>, and <code>mstr_translation_source<\/code> metadata to avoid data loss.<\/p><\/dd>\n<dt id=\"does%20every%20post%20or%20page%20need%20a%20translation%20group%3F\"><h3>Does every post or page need a translation group?<\/h3><\/dt>\n<dd><p>No. Content without translations can remain outside a group. Translation Health reports these as informational items, not critical errors.<\/p><\/dd>\n<dt id=\"are%20draft%20translations%20shown%20to%20visitors%20or%20search%20engines%3F\"><h3>Are draft translations shown to visitors or search engines?<\/h3><\/dt>\n<dd><p>No. Draft, private, trash, and unsupported post type relations are excluded from frontend switchers and hreflang output.<\/p><\/dd>\n<dt id=\"can%20the%20repair%20tool%20overwrite%20existing%20language%20metadata%3F\"><h3>Can the repair tool overwrite existing language metadata?<\/h3><\/dt>\n<dd><p>No. The safe repair tool only fills empty <code>mstr_post_language<\/code> values from site locale mapping. Existing language metadata is not overwritten.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Added dynamic multisite locale discovery from site paths and language subdomains when explicit locale mapping is not saved.<\/li>\n<li>Keeps manual Network Admin locale mapping as the first priority while allowing \/tr\/ style subsites to work out of the box.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Moved admin column CSS into the registered admin stylesheet and enqueue flow.<\/li>\n<li>Replaced the short <code>mmr<\/code> code prefix with the longer <code>mstr<\/code> prefix for plugin-owned code identifiers, hooks, options, metadata, AJAX actions, CSS classes, and shortcode names.<\/li>\n<li>Prefixed the translation group sequence option and relation metadata keys.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Added plugin homepage and author homepage metadata.<\/li>\n<li>Added a documentation link to the readme.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Added explicit nonce validation for Translation Health filter parameters.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Prepared the first public submission release.<\/li>\n<\/ul>","raw_excerpt":"Manage multilingual post and page relationships across WordPress Multisite with hreflang, health audit, and safe repair tools.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tuk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/314232","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tuk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/tuk.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/tuk.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=314232"}],"author":[{"embeddable":true,"href":"https:\/\/tuk.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mudosdigital"}],"wp:attachment":[{"href":"https:\/\/tuk.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=314232"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/tuk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=314232"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/tuk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=314232"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/tuk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=314232"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/tuk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=314232"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/tuk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=314232"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}