Based on the answers provided in the question that I linked to, you would probably be best served to use a plugin such as Permalink Manager Lite. It looks after the redirecting of old URLs for you and also manages the issue of duplication.
The code only option would be this answer but that depends on how much you want to code yourself.
Related Posts:
- Does the functions.php file ever get called during an AJAX call? Debug AJAX
- Bestway To Define Theme and Plugin path and url
- Form to Add Posts to Custom Post Type
- How do I add settings to the Background Options Page?
- Import media to online WordPress from local development
- How to add a checkbox element to attachments editor with example
- Auto get_header and get_footer on every template?
- What is the right way to include a wp-admin file in your theme?
- Theme Check gives: Required: This theme doesn’t seem to display tags?
- Is it possible to use line break in theme description?
- Override Current Theme Setting in wp_config.php
- Theme showing incorrect update
- modify a output of a widget
- How do I “unhook” / de-register jQuery so that it’s not called as part of wp_footer();?
- changing Specific section background image in wordpress
- WP Gutenberg custom block – generate theme colors from SASS and use them in the inspector and php callback
- Which is the simplest theme for WordPress to use it as your base?
- There’s an image named g.gif somewhere in my WordPress site
- How to highlight the current page in the nav menu?
- Is tag default in WordPress?
- Whats the safest way to output custom JavaScript and Css code entered by the admin in the Theme Settings?
- Should I use language_attributes() or bloginfo(“language”) in html tag
- Getting jquery to work with custom theme
- How to retrieve an image from a post and display it before excerpt of a post? [duplicate]
- Why does WP recommend against custom favicon functionality in themes?
- What’s the best action to use when you want to do something only once per theme setup?
- Excluding a page with a certain name from wp_page_menu
- Widgets with groups / sub widgets? Widget in a widget?
- How to upload images using Settings API
- WordPress 404 page returning with default in IIS7
- Avada resources still loading from localhost after database migration [closed]
- No Appearance –> Header menu
- How do I create a custom partial / template?
- How to make the_tags title translatable?
- Should I use include or load_template for including shortcodes, plugins and so on?
- Get a setting value conditionally in the Customizer api
- How should I be handling my theme version numbering?
- Set default featured image for terms of a custom taxonomy
- How would you accomplish the following advanced settings page?
- image url relative path not working in css file
- Update Custom Theme Version
- Bootstrap card columns change images size
- comment form args are not translatable (customized comment form)
- Zoom on custom theme without child
- What do with the index.php … [duplicate]
- How to add Space between sidebar and footer widget in WordPress theme [closed]
- Custom Navigation build using wp_nav_menu and walker
- Question regarding WP multisite feature
- Call to undefined function add_menu_page() on theme activation
- The Content is not Wraping in tag
- Is it acceptable for a WordPress theme to not accept widgets?
- Should all references to a text domain be to my current theme?
- WordPress Settings API not saving options
- Custom image size vs CSS sizing
- Simple child theme modification but links are broken
- Making a WordPress theme based on twentyten
- Is functions.php in themes applied to all templates?
- Doing context-aware previews in the WordPress Customizer
- First post full width without Sidebar
- multiple html/css files for wordpress theme?
- best practices for updating wordpress theme
- Create new wordpress theme with no need update
- Multi Site Setup, Child Themes, Getting Style Sheet Directory
- Add image URL automatically to custom field?
- content filter (add_filter) for category description?
- Exclude parent categories from the_category() within the loop
- How do I pass the category object to a function when is_archive() is true?
- Making a horizontal flyout menu from WordPress category listing
- How to use Canonical URL meta tag to avoid duplicate content issues with WP home pages
- getBoundingClientRect() showing different values on load vs scroll
- Host Private Custom Theme
- How can I set multi archive page template on same time for only one custom post type?
- Exclude categories from wp query not working
- Copying a modified theme from one wordpress site to another wordpress site [closed]
- How to get custom logo with REST API instead of get_theme_mod();
- How can I change this SVG shape that’s generated?
- Show Yoast SEO meta tags in Custom WordPress Templates (Theme)
- Can I set rest API endpoints from within a theme?
- Theme starter content translation is not working
- (Parent) theme Is Not Showing In Theme Selection Panel and Therefore Breaks Child Theme
- remove_action(‘genesis_header’,’genesis_do_header’) hook not working
- Customizer Image-Picker Preview Not Working
- How to get url image page the right way?
- Mobile view logo background colour in wordpress
- Breaking Categories Up into Individual Divs
- Different stylesheet for different pages not working fully
- Strip HTML tags on custom code from the_content
- page.php is not called when I load a Page
- wpdb->insert adds too many rows
- wpalchemy repeating fields dropdown issue
- How to reuse parts of WordPress site e.g. header, footer, part of header for multiple WordPress sites?
- WordPress loop not working on blog.php page
- Option to show/hide widget depending on is_home?
- Add Dynamic Sidebar to Exisiting WordPress Theme [closed]
- IS there any reason not to include javascript in my own post’s embeds?
- How to create more templates to the same theme?
- How do I middle-align my header menu items in WordPress [closed]
- How to add Dummy content when active wordpress theme without xml import?
- Is there any reason that other theme elements (such as nav menus) shouldn’t be within the loop?
- How to Enable Hot Module Replacement with Webpack