Conflicting issues with LearnDash and Thrive Themes page builder
Fixed -- sorta, with a code snip
OPTION 1 — Use a plugin (best, safest)
Use a snippet manager so you don’t break your site.
Step 1 — Install plugin
Go to:
Plugins → Add New
Search for:
Code Snippets
Install → Activate
Step 2 — Add your snippet
Go to:
Snippets → Add New
Give it a name:
Fix LearnDash + Thrive duplicate content
Paste this code:
add_filter('the_content', function($content) {if (isset($_GET['tve'])) {
return '';
}
return $content;
}, 999);
Step 3 — Set where it runs
Scope: Run everywhere
Save and Activate
Step 4 — Test
Open a LearnDash lesson
Click Edit with Thrive Architect
You should now see only one version of the content. Yes!
A support ticket was sent to ThriveThemes, Monday morning.
Going to ChatGPT
What to check first:
Switch that affected page temporarily to a default theme like Twenty Twenty-Five and test again. If the duplicate content disappears, the theme or its template overrides are the culprit.
Disable Thrive Architect/Thrive Theme Builder temporarily and test the same LearnDash page. If the duplication disappears, Thrive is part of the conflict.
Check whether the affected page is a LearnDash lesson, topic, course, or custom post type using a custom template.
Inspect whether the page has both:
normal WordPress content in the editor, and
a Thrive-built layout/template
Look for duplicated hooks in theme files such as:
the_content()
LearnDash template overrides
single post templates
content wrappers in functions.php
Fastest path to isolate it:
deactivate all plugins except LearnDash and Thrive
test
then switch theme
then reactivate plugins one by one
That will usually expose whether this is:
Thrive vs theme
LearnDash vs theme
or a third plugin conflict
Since I could not actually watch the Loom, the cleanest next move is to either upload the video file here or send 3 screenshots:
the broken front-end page
the WordPress page edit screen
the Thrive template or LearnDash template settings
Based on the video title alone, my leading guess is duplicate rendering from the theme/template layer, not corrupted page content.
page-builder-shows-content-twice.mp4FileI do not want you to make guesses as to what is happening. Let me fully explain. I don't want to feel good. I want to get it fixed. This is a technical developer issue. I'll upload the video rather than have you look at it on Loom.Thought for 1m 51sUnderstood.
I watched the uploaded video. Here is what it actually shows.
What the video shows
Inside Thrive Architect, on the LearnDash Topic page “In-Water Program Overview,” the same lesson content is present twice in the editor view:
First, as the normal editable Thrive content block near the top.
Then again farther down as a rendered LearnDash lesson output, including:
breadcrumb trail
lesson progress bar
the “Everyone Swims” image
the same “Lesson Summary” text repeating
So this is not vague. The editor is displaying both:
the post content being edited, and
a full rendered lesson/template output of that same post underneath it.
That is the duplication pattern visible in the recording.
What I cannot confirm from the video alone is whether the problem exists only inside the Architect editor or also on the published frontend lesson page. The recording mostly demonstrates the editor state.
What this means technically
This is almost certainly a double-rendering problem, not a content-writing problem.
The duplicate is happening because the page is getting output through two rendering paths:
one path is the Thrive Architect editable canvas
the other path is the LearnDash single topic/lesson template output
In plain terms, the system is showing the same Topic once as editable content and then again as the live lesson template.
Where the bug is most likely located
The conflict is likely in one of these layers:
Thrive Theme Builder / Architect template assignment for LearnDash custom post types
LearnDash single topic or single lesson template
Theme or child-theme override that outputs content on LearnDash pages
A hook or template part that calls the main content again
The specific thing to look for
Somewhere in the render chain, there is an extra content output. In practice that usually means one of these is happening:
the_content() is being called once by Architect and again by the LearnDash template
a Thrive content block is outputting the post body, while the LearnDash single template also outputs the same body
a custom single template for sfwd-topic, sfwd-lessons, or sfwd-courses is wrapping and reprinting the main content
a theme builder template is assigned to LearnDash content types when LearnDash is already controlling the single layout
Fix path — technical and direct
Do these in order.
1) Verify whether the duplication is editor-only or frontend too
Open the live Topic page in a clean logged-out browser window.
If the live page is not duplicated, then the bug is in Architect editor rendering.
If the live page is duplicated, then the bug is in the template stack itself.
That split matters.
2) Test with Thrive disabled but LearnDash active
Temporarily disable:
Thrive Architect
Thrive Theme Builder, if active
Then load the same LearnDash Topic.
Results:
If duplication disappears, the issue is in the Thrive layer
If duplication remains, the issue is in the theme / child theme / LearnDash override layer
3) Switch theme temporarily
Activate a default theme such as Twenty Twenty-Five and keep LearnDash active.
Results:
If duplication disappears under the default theme, your active theme or child theme is part of the problem
If duplication remains, focus on LearnDash + Thrive interaction
4) Inspect template assignment for LearnDash post types
You need to check whether Thrive Theme Builder has a template assigned to:
Courses
Lessons
Topics
Quizzes
Specifically look for a template that contains a Content element or equivalent main content output for LearnDash post types.
If LearnDash already renders the lesson/topic body and the Thrive template also inserts the page content, that is your duplication.
5) Check for theme overrides
Look in:
child theme functions.php
single.php
singular.php
single-sfwd-topic.php
single-sfwd-lessons.php
single-sfwd-courses.php
any LearnDash override templates
any Thrive integration template parts
You are looking for anything that outputs content a second time. Search for:
the_content(the_excerpt(
get_the_content(
do_shortcode(
learndash_get_template_part
sfwd_lms_has_access
Also search for custom hooks attached to LearnDash content render actions.
6) Check whether the Topic content exists both as raw content and embedded template content
In the video, the top editable block contains the lesson body. Lower down, the LearnDash layout re-renders it.
That means the Topic’s own post_content is likely being displayed normally, and then the LearnDash single template is also rendering the post as part of its full page structure.
That is not two separate pieces of saved content. It is one saved content source being rendered twice.
7) Remove one rendering path
The actual fix is to make only one of these responsible for the Topic body:
Thrive content rendering
LearnDash single template rendering
Not both.
In most setups, the cleaner direction is:
let LearnDash control lesson/topic single-page structure
use Thrive only where it does not inject a second full content output
Or, if you want Thrive fully in charge:
stop the LearnDash single template from printing the lesson content area a second time
Most probable technical cause from the video evidence
The strongest evidence points to this:
A Thrive-edited LearnDash Topic is being loaded inside Architect, while the page also includes the normal LearnDash lesson/topic template output further down the same page. That is why you see the raw editable section first and the lesson layout with breadcrumb/progress/image/text again below it.
That usually comes from an assigned single template or override that still prints the lesson content after Architect has already placed the page body on the canvas.
What I would do next if this were my debug session
I would run this sequence:
Check live frontend duplication.
Disable Thrive Architect and Theme Builder.
Re-test.
Switch to default theme.
Search theme and child theme for the_content() on LearnDash single templates.
Remove any Thrive single template assignment for LearnDash Topics.
Re-test the Topic editor.
That will isolate the exact layer fast instead of guessing.
If you want, the next step should be the actual code/template audit checklist for LearnDash + Thrive, including exactly which files and hooks to inspect.
From Facebook helper, Fred: problems may be related to the way your builder inserts the content in the Lesson CPT. The section that should not be there is the first one. The right order would be Title, Progression (or infobar as LD calls it), Feat Img, then Content. I haven’t checked the Lesson php template but I’m pretty certain the_content is shown only one. It has to be something with your page builder and the way it inserts the content.Fred’s read is plausible, and it is more precise than a generic “plugin conflict” answer.
The key point in what he said is this:
the section that should not be there is the first one
That matches the video pattern. The lower section looks like the normal LearnDash Topic/Lesson rendering order:
Title
Infobar / progression
Featured image
Content
The upper section looks like builder-injected content sitting above the real LearnDash output.
So the likely model is not “LearnDash prints content twice.” It is:
Thrive inserts the post content into the editing/render flow
then
LearnDash renders the normal single lesson/topic template underneath
That would create exactly what you are seeing.
What Fred is effectively saying
Fred is narrowing the issue to this:
LearnDash’s template is probably behaving normally
the extra content is likely being injected by the page builder into the Lesson/Topic custom post type before LearnDash’s normal template output runs
That is a much better working theory than blaming LearnDash first.
What that means technically
On a LearnDash Topic or Lesson CPT, one of these is probably happening:
Thrive is hooking into the_content or replacing the main content area for that CPT.
Thrive Theme Builder template for LearnDash post types includes a content element that prints the body before LearnDash’s own template stack.
A Thrive integration layer is treating the LearnDash Topic/Lesson like a normal page/post, while LearnDash is also treating it like a structured LMS screen.
So the duplicated section is likely:
Top block = Thrive’s builder-side content output
Bottom block = LearnDash’s intended single lesson/topic layout
Why Fred’s order matters
He is right that the LearnDash “correct” sequence is usually:
title
infobar
featured image
content
Your duplicate section appears before that sequence, which strongly suggests the extra block is not LearnDash’s native output. It is being inserted upstream.
What to test next
These are the fastest technical checks.
1. Confirm whether the affected post type is Topic, Lesson, or both
Test:
one Topic
one Lesson
one Course
If it only happens on Topics, that narrows it to sfwd-topic.
If it happens on Lessons and Topics, it is probably a broader Thrive-to-LearnDash CPT integration issue.
2. Check whether Thrive Architect is officially editing that CPT
In WordPress admin, inspect Thrive settings for supported content types.
Look for whether Architect is enabled for:
Lessons
Topics
Courses
If Thrive is enabled on LearnDash CPTs, disable it for those CPTs and retest.
That is one of the highest-value checks.
3. Inspect Thrive Theme Builder templates
Look for a single template assigned to LearnDash post types that contains a generic content element.
That content element may be outputting the post body before LearnDash renders its own layout.
If such a template is assigned to sfwd-topic or sfwd-lessons, that is a prime suspect.
4. Inspect the live frontend, not just the editor
You need to determine whether the duplication exists:
only inside Architect
or on the public page too
If editor-only, the problem is builder preview/render logic.
If frontend too, the problem is template assignment or content hook duplication.
5. Search the child theme for LearnDash single-template overrides
Specifically inspect files like:
single-sfwd-lessons.php
single-sfwd-courses.php
single.php
singular.php
functions.php
Search for:
the_content(do_shortcode(
tcb_
thrive
learndash
You are looking for any extra call that prints content above the LearnDash layout.
What I think is most likely now
Based on the video and Fred’s note, the most likely root cause is:
Thrive is allowed to render on LearnDash Lesson/Topic CPTs, and it is outputting the post body as builder content before LearnDash outputs its normal single template.
That is more specific than saying “the theme” or “LearnDash” in general.
What to do first
The strongest first move is this:
Disable Thrive Architect support for LearnDash post types if that option exists
then test the same Topic again
If that fixes it, you have isolated the cause without touching code.
After that, check whether Thrive Theme Builder is assigning a generic single-post template to LearnDash content types. If yes, either exclude LearnDash CPTs from that template or use a LearnDash-safe template approach.
My blunt take: Fred is probably closer to the truth than the earlier “could be anything” answers. The visible order in the video supports his theory that the extra block is builder-inserted content, not LearnDash natively printing the_content() twice.
I can help you build a strict step-by-step isolation plan next, with zero fluff and a pass/fail result for each test.
Notes
The duplicate content shows in the page builder environment for both the lessons and the topics.
When changing the WordPress theme to Kadence, the same error is present.
It looks like a global LearnDash CPT + Thrive Architect rendering conflict.
Change the job from “debug broadly” to “neutralize one rendering path.”
LearnDash’s own docs say your lesson/topic content can be edited with a page builder, but LearnDash still determines where that content is inserted on the page. The same doc also says LearnDash’s dynamic lesson/topic UI is only officially editable through its Elementor compatibility integration; for other builders, the dynamic LearnDash layer is still controlled by LearnDash.
That lines up with what you found:
- normal Posts behave
- Block Editor behaves
- Lessons and Topics duplicate only in Thrive Architect
- changing themes did not change it
So the practical fix is to stop LearnDash’s full single lesson/topic template from loading inside the Thrive editor request, while leaving the live frontend untouched.
The fix to try first
Create an MU plugin that detects the Thrive Architect editing request for LearnDash Lessons and Topics, and swaps in a minimal template that only renders the post content for the editor canvas.
That does two things:
- keeps Thrive Architect editing enabled for Lessons and Topics
- prevents the normal LearnDash single-page wrapper from rendering under the builder canvas
File 1
Create this file:
wp-content/mu-plugins/ld-thrive-architect-editor-fix.php
<?php/**
* Plugin Name: LD + Thrive Architect Editor Fix
* Description: Prevent LearnDash lesson/topic frontend wrappers from rendering inside Thrive Architect editor requests.
* Author: Site Dev
* Version: 0.1.0
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Detect Thrive Architect editor/preview requests.
* Adjust this if your site uses a different query flag.
*/
function bz_is_thrive_architect_request(): bool {
$get = array_change_key_case( $_GET, CASE_LOWER );
$known_flags = [
'tve',
'tcbf',
'tve_editor',
'thrive-visual-editor',
];
foreach ( $known_flags as $flag ) {
if ( isset( $get[ $flag ] ) ) {
return true;
}
}
$request_uri = $_SERVER['REQUEST_URI'] ?? '';
return (
strpos( $request_uri, 'tve=true' ) !== false ||
strpos( $request_uri, 'tcbf=' ) !== false
);
}
/**
* Restrict to LearnDash lesson/topic single views in Thrive editor only.
*/
function bz_is_ld_thrive_editor_context(): bool {
if ( is_admin() || wp_doing_ajax() || wp_doing_cron() ) {
return false;
}
if ( ! bz_is_thrive_architect_request() ) {
return false;
}
if ( ! is_singular( [ 'sfwd-lessons', 'sfwd-topic' ] ) ) {
return false;
}
return true;
}
/**
* Swap the template only inside Thrive editor requests for LD Lessons/Topics.
* Live frontend remains unchanged.
*/
add_filter( 'template_include', function( $template ) {
if ( ! bz_is_ld_thrive_editor_context() ) {
return $template;
}
$custom = __DIR__ . '/ld-thrive-editor-canvas.php';
if ( file_exists( $custom ) ) {
return $custom;
}
return $template;
}, 9999 );
File 2
Create this second file:
wp-content/mu-plugins/ld-thrive-editor-canvas.php
<?phpif ( ! defined( 'ABSPATH' ) ) {
exit;
}
?><!doctype html>
<html <?php language_attributes(); ?>>
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
<?php wp_head(); ?>
</head>
<body <?php body_class( 'ld-thrive-editor-canvas' ); ?>>
<?php
while ( have_posts() ) :
the_post();
/**
* Render only the editable post content for Thrive's canvas.
* Do NOT render the theme's normal single template or LearnDash wrappers here.
*/
the_content();
endwhile;
?>
<?php wp_footer(); ?>
</body>
</html>
Why this is the right kind of fix
LearnDash’s page-builder docs make clear that LearnDash controls placement of lesson/topic content and also injects dynamic lesson/topic UI separately. That is exactly the sort of thing that can collide with a builder that expects to own the whole editing canvas.
This MU-plugin does not try to “rewrite LearnDash.” It just says:
- inside Thrive editor on sfwd-lessons and sfwd-topic
- use a stripped-down canvas template
- render only the content that Thrive is editing
- do not also render the normal single lesson/topic page wrapper
What to test after adding it
Open one Lesson and one Topic in Thrive Architect.
Expected result:
- the duplicate lower LearnDash-rendered section should disappear
- the builder should show only the editable content canvas
Then check the live frontend for the same Lesson and Topic.
Expected result:
- no change at all on the public page
If it still duplicates
Then the request detector needs one small adjustment.
In that case, inspect the URL when Thrive Architect opens a Lesson or Topic and note the query parameters. Look for something like tve=true, tcbf=, or another Thrive-specific flag. Add that flag to bz_is_thrive_architect_request().
For example, if the URL contains ?tve=true&post=123, the current code should catch it.
If it contains something else, add it here:
'tve',
'tcbf',
'tve_editor',
'thrive-visual-editor',
'your_actual_flag_here',
];
If the builder breaks because title/featured image vanish
Then add them into the editor-only canvas template in the order you want:
the_title( '<h1>', '</h1>' );if ( has_post_thumbnail() ) {
the_post_thumbnail( 'full' );
}
the_content();
That still keeps the full LearnDash wrapper out of the editor canvas.
What not to do
Do not keep swapping themes. LearnDash’s own page-builder guidance focuses on how LearnDash content and dynamic content are inserted, and your Kadence test already proved the theme is not the main cause.
Do not start editing core LearnDash plugin files.
Do not chase CSS first. This is a render-path problem, not a styling problem.
If this works only partly
The next layer would be to suppress specific LearnDash output in the Thrive editor request only, but the template-swap approach is the cleanest first developer fix because it avoids fighting LearnDash hook-by-hook.
The most likely outcome is that this removes the repeated lower section and lets you keep using Thrive Architect on Lessons and Topics.
Your log shows Thrive Architect loading this template:
wp-content/plugins/sfwd-lms/themes/ld30/templates/focus/index.phpThat is LearnDash Focus Mode.
So during Thrive editing:
Thrive shows the builder content
LearnDash still loads the Focus Mode lesson/topic template
That is why the content appears twice.
This confirms the duplication is caused by:
LearnDash Focus Mode rendering during Thrive Architect editing.
The solution is to bypass Focus Mode when Thrive Architect is active.
Subject: Thrive Architect duplicates LearnDash Lesson/Topic content in editor by loading LearnDash Focus Mode underneath builder canvas
Problem summary
On a current WordPress install, Thrive Architect duplicates content when editing LearnDash Lessons and Topics. The same content does not duplicate in the Block Editor, and standard WordPress posts are unaffected.
What we tested
WordPress current
LearnDash current
Thrive Architect current
plugins up to date
switched theme from Thrive Theme Builder to Kadence
same problem remains
duplication occurs on both sfwd-lessons and sfwd-topic
duplication does not occur on normal WP Posts
duplication does not occur in Block Editor
Observed behavior
When opening a LearnDash Lesson or Topic in Thrive Architect, the content appears twice:
once as the builder/editable content area
again as the LearnDash-rendered lesson/topic layout underneath
The repeated lower section appears in LearnDash’s normal order:
title
progress/infobar
featured image
content
This suggests the extra section is LearnDash’s template output, not a second copy of saved post content.
Debug evidence
The Thrive Architect editor request uses URLs like:
/courses/.../lessons/.../topic/.../?tve=true&tcbf=...
WordPress resolves those requests correctly as:
sfwd-lessons
sfwd-topic
During those requests, the loaded template is:
wp-content/plugins/sfwd-lms/themes/ld30/templates/focus/index.php
This indicates LearnDash LD30 Focus Mode is still being loaded during Thrive Architect editing.
Relevant LearnDash function:
learndash_30_focus_mode()
Developer docs state that it returns the Focus Mode template path when Focus Mode is enabled.
Conclusion
This appears to be a Thrive Architect / LearnDash compatibility issue where Thrive editor requests for LearnDash Lessons and Topics do not suppress or properly integrate with LearnDash Focus Mode, causing the LearnDash single lesson/topic output to render beneath the builder canvas.
What we need
A supported fix so Thrive Architect can edit LearnDash Lessons and Topics without LearnDash Focus Mode or single-template output rendering a second copy of the content inside the editor.
Full copy from ChatGPT conversation
We got a reply from ThriveThemes support: Thank you for reaching out to us. I can see you're experiencing duplicate content when editing LearnDash Lessons and Topics in Thrive Architect. After looking into this, I can confirm what's happening. When LearnDash Focus Mode is enabled, it applies its own layout to lesson and topic pages without checking whether the Thrive Architect editor is open at the same time. Because of this, both the Architect editor canvas and the LearnDash Focus Mode layout end up on the same page, which is what causes the duplication you're seeing. This is not a bug in either product. Both are working as intended, but they don't yet account for each other in this specific situation. This is a gap in the integration between the two. I've gone ahead and logged this as a feature request for our development team to add compatibility handling for LearnDash Focus Mode in the Architect editor. I want to be upfront that I don't have a timeline to share on when this will be addressed, but your report has been noted and the detail you provided was really helpful in understanding the issue clearly. To learn more about how we handle this type of request, please refer to this link: https://thrivethemes.com/docs/logging-and-releasing-of-bugs-and-features-in-thrive-themes/#feature-requests In the meantime, one workaround worth trying is to temporarily disable Focus Mode for the course while making edits in Thrive Architect, then re-enable it once you're done. I hope that helps clarify things. Let me know if you have any other questions. Best regards, How would you rate my reply? Great Okay Not Good -- Belen Technical SupportBelen’s reply is good support, but not perfect. Here is a straight assessment.
Overall rating
Okay → leaning toward Good
The response is polite, explains the cause, and gives a workaround. But it avoids the deeper responsibility question and leaves you with the operational burden.
What they did well
1. Clear explanation of the cause
They correctly identified the conflict:
LearnDash Focus Mode injects its own layout
Thrive Architect loads its editing canvas
Both render simultaneously during editing
That is exactly why you see duplicate content.
2. They reproduced or understood the issue
They did not dismiss it. They acknowledged the interaction between the two systems.
3. They logged a feature request
This is the standard route for compatibility gaps.
4. They gave a workable temporary fix
Disable Focus Mode while editing.
That will prevent LearnDash from injecting its template.
What is weak in their reply
1. “Not a bug” is technically convenient but not fully accurate
From a user perspective, this is a bug:
Two supported plugins create a broken editing interface.
Calling it a feature gap avoids ownership.
2. They did not explain where Focus Mode interferes
The real technical issue is:
LearnDash Focus Mode loads its template through:
learndash/template/lesson.phpwhich overrides the normal WordPress page layout.
Thrive Architect then loads its editor inside that template, causing the duplicate rendering.
That context would help developers.
3. The workaround is operationally annoying
Their suggestion requires:
Disable Focus Mode
Edit lesson
Re-enable Focus Mode
For large courses this becomes tedious.
A better fix would be:
Disable Focus Mode automatically when Architect loads.
The real responsibility split
LearnDash side
Focus Mode should detect:
?tve=truewhich indicates Thrive Architect editor mode.
Then not load Focus Mode layout.
Thrive side
Architect could also detect LearnDash Focus Mode and suppress it.
What you should send back (strong response)
A productive reply would be:
Thank you for the explanation.
Since the Thrive Architect editor loads with the ?tve=true parameter, could your team suppress LearnDash Focus Mode when that parameter is present?
That would prevent the duplicate layout without requiring users to toggle Focus Mode on and off while editing lessons.
This pushes toward a real compatibility fix.
Practical fix you can implement immediately
You can bypass the conflict by forcing Focus Mode off when Architect loads.
Add to functions.php:
add_filter('learndash_is_focus_mode', function($enabled){if (isset($_GET['tve'])) {
return false;
}
return $enabled;
});
Result:
Thrive Architect editor loads normally
Focus Mode remains active for students
No manual toggling needed
If you want, I can also show a much better long-term setup for LearnDash + Thrive Architect that prevents these template conflicts entirely. It’s the architecture most course builders eventually adopt.
Tell me all about Focus Mode in LearnDash.LearnDash Focus Mode — what it really is
4Focus Mode in LearnDash is a distraction-free layout system for lessons, topics, and quizzes. It strips away your normal WordPress theme (header, footer, sidebars) and replaces it with a controlled learning interface.
It’s not just styling — it overrides your page template entirely.
What Focus Mode actually does
When enabled, LearnDash:
Removes your theme’s:
Header
Footer
Sidebar widgets
Loads its own template system
Wraps your lesson content inside a course-focused UI
That’s why it conflicts with builders like Thrive Architect — both are trying to control the page layout.
What users see (the experience)
Focus Mode turns your lesson into something that feels like a modern course platform:
Core elements
Clean content area (center)
Course progress bar
Lesson / topic navigation sidebar
Next / Previous buttons
Mark Complete button
No distractions. Just content + progression.
Why it exists (the real benefit)
Focus Mode is built for completion rates, not aesthetics.
It helps:
Keep students from clicking away
Create a “platform feel” (like Teachable or Kajabi)
Guide users step-by-step through content
Improve course engagement
For a paid course like Everyone Swims, this matters.
Where you enable it
Inside LearnDash:
LearnDash LMS → Settings → Focus Mode
Or per course:
Course → Settings → Focus Mode toggle
Key features inside Focus Mode
1. Course sidebar navigation
Shows:
Lessons
Topics
Progress
This becomes the student’s roadmap.
2. Progress tracking
Visual progress bar
Completion indicators
Locked/unlocked content flow
3. Distraction-free UI
No theme clutter. This is the biggest shift.
4. Branding options
You can customize:
Logo
Accent color
Background color
But it’s still limited compared to full page builders.
The big tradeoff (this is where people get burned)
You lose control of layout
Focus Mode overrides:
Your theme
Most page builder layouts
Custom headers/footers
That’s why your issue happened.
When Focus Mode is the right move
Use it when:
You want a clean course experience
You care about completion and usability
You don’t need heavy design customization
You want something that feels like a SaaS course platform
When NOT to use it
Avoid it when:
You rely heavily on Thrive Architect for layout
You want marketing-style lesson pages
You need complex design elements
You want full branding control inside lessons
The real conflict (your situation)
Here’s exactly what’s happening:
Focus Mode loads its template
Thrive Architect loads its editor canvas
Both render → duplicate content
This is structural, not cosmetic.
Smart ways to use Focus Mode (without headaches)
Option 1 — Hybrid approach (best for most)
Use Thrive Architect for:
Landing pages
Sales pages
Use Focus Mode for:
Lessons
Topics
But don’t try to design lessons heavily in Thrive
Option 2 — Disable Focus Mode for editing only
What you were told:
Turn off Focus Mode
Edit
Turn it back on
Works, but inefficient.
Option 3 — Conditional disable (best technical fix)
Automatically disable Focus Mode when editing (what I gave you earlier).
This is the cleanest operational setup.
Option 4 — No Focus Mode at all
Use Thrive Architect fully for lessons.
Downside:
You lose structured navigation and progress UI
You must rebuild that manually (painful)
Bottom line
Focus Mode is:
A controlled learning interface
A template override system
A conversion tool for course completion
But it is not compatible by default with page builders controlling layout.
Straight advice for your setup
Given your goals (course sales + structured delivery):
Keep Focus Mode ON
Use Thrive for marketing and funnels
Keep lesson layouts simple inside LearnDash
Trying to make both control the same page is where things break.
If you want, I can map out a clean architecture for “Everyone Swims” that avoids all of these conflicts and improves conversions at the same time.
When I turn off focus mode on the LearnDash Settings -- the content appears twice still.Thought for 15sThat means Focus Mode is probably not the only cause anymore.
If you turned it off in LearnDash global settings and the lesson/topic still shows duplicate content in Thrive Architect, then one of these is more likely happening:
Focus Mode is still enabled at the course level
A cache is serving the old layout
Thrive Architect and LearnDash are both outputting the lesson content separately
A template override or code snippet is forcing LearnDash content onto the page anyway
LearnDash has both site-wide settings and course-specific display settings, so disabling something globally does not always mean a given course is no longer using that behavior. Their docs show both a global settings area and separate course display/content settings.
Here is the practical read on your situation:
Most likely causes now
1) Focus Mode may still be active on the course itself
LearnDash documentation separates global settings from course-level settings. So even if you switched off Focus Mode in the main settings area, the course may still be configured in a way that preserves the focused template or related display behavior.
2) Cached editor page
If you use any caching or optimization layer, WordPress may still be serving an old rendered version of the lesson/topic edit screen. That can make it look like your setting change did nothing. This is especially common with page cache, object cache, CDN cache, and optimization plugins.
3) The duplicate is not Focus Mode anymore
LearnDash says lesson pages already have their own content system, and they can automatically append associated content like topics/quizzes below the lesson content. They also note that page builders work a bit differently on LearnDash content pages, with Focus Mode being a special exception.
So the duplication you now see may be:
Thrive Architect rendering the lesson body once
LearnDash rendering the lesson/post content again through its own lesson template flow
In plain English: one copy is coming from Thrive’s canvas, and another from the underlying lesson template.
What to do next
Step 1: Check the course itself, not just global settings
Go to:
LearnDash LMS → Courses
Open the specific course
Open its Settings
Check anything related to display/template/focus behavior for that course
LearnDash’s docs confirm course-level settings exist separately from global settings.
Step 2: Purge all caches
After changing LearnDash settings, clear:
WordPress cache plugin
server cache
Cloudflare/CDN cache
browser cache
Then reopen the lesson edit screen with Thrive Architect.
Step 3: Test one lesson with Thrive disabled
Edit one affected lesson in the default WordPress editor and see whether the frontend still duplicates.
That tells you which side is duplicating:
If duplication happens without Thrive, LearnDash/template side is the issue
If duplication happens only with Thrive, then Architect is clashing with the LearnDash lesson template
Step 4: Check whether the lesson content itself was inserted twice
Open one lesson/topic in the normal editor and check for:
duplicated text in the content body
a Thrive shortcode/block plus the same content again below
LearnDash blocks/shortcodes embedded manually in the lesson
LearnDash supports shortcodes and blocks for dynamic course content, so if one was manually inserted into the lesson body, that can create a second rendering.
Step 5: Disable any custom snippet you added for this issue
If you added any code in functions.php, Code Snippets, or a child theme to handle Focus Mode or Thrive, turn it off temporarily. A partial workaround can itself become the new source of duplication.
What this probably means technically
At this point, the strongest explanation is:
Focus Mode exposed the problem first
but even with Focus Mode off,
the LearnDash lesson template and Thrive Architect are still both loading the lesson content
So the real conflict is broader than Focus Mode. Focus Mode was just the easiest part to spot.
Straight answer on who owns the fix
If the duplication still happens with Focus Mode off, then Thrive support’s earlier explanation was incomplete.
It means the issue is not only:
“Focus Mode + Thrive Architect”
It is more likely:
“LearnDash lesson/topic template rendering + Thrive Architect editor rendering”
That is still an integration problem, but now it is not fair for Thrive to frame it purely as a Focus Mode feature request.
What to tell the developers now
Send this:
I disabled Focus Mode in LearnDash settings, but the lesson/topic content still appears twice in Thrive Architect. That suggests the issue is not limited to LearnDash Focus Mode.
It now appears that the LearnDash lesson/topic template is still rendering the lesson content while Thrive Architect also renders its editor canvas, causing duplicate output.
Please investigate compatibility with LearnDash lesson/topic templates even when Focus Mode is disabled.
That is the cleaner technical statement.
My blunt read
Your current evidence says this is still a Thrive/LearnDash rendering conflict, but not just Focus Mode. The first support answer got part of it right, not all of it.
The next move is to isolate whether the second copy comes from:
the course-level LearnDash template
manually embedded LearnDash blocks/shortcodes
a cache
or Thrive rendering the post body on top of LearnDash’s own lesson output
If you want, I’ll give you a tight developer checklist you can hand to both LearnDash and Thrive so they stop bouncing this back and forth.
There is no way to turn off focus mode on a course by course basis. There is no such toggle in LD, Course, settings.You’re right — and this matters.
There is NO per-course Focus Mode toggle in LearnDash.
Focus Mode is global only. Thrive support was wrong (or at least sloppy) implying you could manage it per course.
So if you turned it off in:
LearnDash LMS → Settings → Focus Mode
…and you still see duplicate content, then Focus Mode is no longer the cause.
What’s actually happening now
At this point, the duplication is almost certainly this:
LearnDash is rendering the lesson content once
Thrive Architect is rendering the same content again
Two render pipelines → same content → double output.
Why this happens (plain English)
LearnDash lesson/topic pages:
Always load through their own template system
Automatically output the post content
Thrive Architect:
Also injects the content into its visual editor canvas
So you get:
[Thrive Architect content][LearnDash lesson content output again below]
This is not Focus Mode anymore — it’s core template overlap.
Quick way to confirm (do this first)
Open one lesson:
Click Edit (WordPress default editor, not Thrive)
Look at the content
If you see:
A Thrive layout (shortcode/block)
AND plain content
Then it’s duplicated at the content level.
If not, then it’s template-level duplication.
The real fix (you have 3 solid options)
OPTION 1 — Stop using Thrive Architect on lessons (cleanest)
Use:
Thrive → landing pages, funnels
LearnDash → lessons (default editor)
This is what most serious course builders end up doing.
Why: LearnDash controls lesson rendering. Fighting that is messy.
OPTION 2 — Force LearnDash to NOT render content when Thrive is active
This is the proper technical fix.
Add this to your site (Code Snippets or functions.php):
add_filter('the_content', function($content) {if (isset($_GET['tve'])) {
return '';
}
return $content;
}, 999);
What this does:
When Thrive Architect is open (?tve=true)
It stops LearnDash from outputting the lesson content
Leaves only the Thrive canvas
Result: no duplication in editor
OPTION 3 — Full override (advanced, but powerful)
You can override LearnDash templates so they don’t auto-output content:
Copy LearnDash templates into your theme
Remove the_content() from lesson template
But this is heavier and not necessary unless you’re building a custom system.
Why Thrive’s answer falls short
They said:
“This is Focus Mode conflict”
That’s only half true.
What you’re seeing now proves:
The conflict exists even without Focus Mode
So the real issue is:
Thrive Architect is not fully compatible with LearnDash lesson templates
That’s the root of it.
What to send back to Thrive (strong version)
Use this:
Focus Mode has been fully disabled globally, but the duplication issue still occurs in LearnDash lessons and topics when using Thrive Architect.
This indicates the problem is not limited to Focus Mode. It appears that LearnDash is still rendering the lesson content via its template while Thrive Architect also renders the content, resulting in duplication.
Can you confirm whether Thrive Architect suppresses the_content() output on LearnDash lesson/topic templates when the editor is active?
That forces them to deal with the real issue.
Bottom line
You were correct — no course-level toggle exists
Focus Mode is no longer the problem
This is now a core rendering conflict
The cleanest fix is:
either don’t use Thrive for lessons
or suppress LearnDash output when Thrive is active
If you want, I can map a high-conversion course setup for “Everyone Swims” that avoids all of this and actually improves your sales funnel at the same time.
How do i do a code snip and add it to my site?Here’s the straight path. No fluff.
You have two safe ways to add a code snippet to your WordPress site:
OPTION 1 — Use a plugin (best, safest)
Use a snippet manager so you don’t break your site.
Step 1 — Install plugin
Go to:
Plugins → Add New
Search for:
Code Snippets
Install → Activate
Step 2 — Add your snippet
Go to:
Snippets → Add New
Give it a name:
Fix LearnDash + Thrive duplicate content
Paste this code:
add_filter('the_content', function($content) {if (isset($_GET['tve'])) {
return '';
}
return $content;
}, 999);
Step 3 — Set where it runs
Scope: Run everywhere
Save and Activate
Step 4 — Test
Open a LearnDash lesson
Click Edit with Thrive Architect
You should now see only one version of the content
OPTION 2 — Add to functions.php (works, but risky)
Only do this if you’re comfortable.
Step 1
Go to:
Appearance → Theme File Editor
Step 2
Open:
functions.phpStep 3
Paste at the bottom:
add_filter('the_content', function($content) {if (isset($_GET['tve'])) {
return '';
}
return $content;
}, 999);
Step 4
Save
Important warning (read this)
If you mess up functions.php:
You can crash your site instantly
White screen of death
That’s why the plugin method is better.
What this snippet actually does
Detects when Thrive Architect is open (?tve=true)
Stops LearnDash from outputting its version of the content
Leaves only the Thrive editor version
If it doesn’t work
Then your duplication is not coming from the_content().
In that case, next likely causes:
LearnDash template override
Thrive template wrapper
Duplicate content inside the lesson itself
Bottom line
Install Code Snippets plugin
Paste code
Activate
Done
Source: helpdesk.WordPress.2026-06-05.xml · Original ID: 4848