---
title: "MH Magazine 5.x Update: Required Changes for Child Themes"
description: "With the release of **MH Magazine 5.x**, the theme underwent a major internal refactor. Many core functions were renamed and reorganised as part of a move from a legacy, function-based structure to a more modular and class-based architecture. If your…"
url: "https://mhthemes.com/support/knb/mh-magazine-5-x-update-required-changes-for-child-themes/"
updated: "2026-03-22"
category: Customizations
---

# MH Magazine 5.x Update: Required Changes for Child Themes

With the release of **MH Magazine 5.x**, the theme underwent a major internal refactor.
Many core functions were renamed and reorganised as part of a move from a legacy, function-based structure to a more modular and class-based architecture.

If your **child theme or custom code relies on old MH Magazine function names**, these changes are required to ensure compatibility.

This article lists the **most important function renames**, grouped by location, to help you update your child theme quickly and safely.

## Main Functions File (functions.php)

The following core setup and utility functions were renamed:

| Old Function Name | New Function Name |
| --- | --- |
| mh_magazine_theme_setup() | mh_theme_setup() |
| mh_magazine_custom_menus() | mh_custom_menus() |
| mh_magazine_image_sizes() | mh_image_sizes() |
| mh_magazine_content_width() | mh_content_width() |
| mh_magazine_scripts() | mh_scripts() |
| mh_magazine_fs() | mh_freemius() |
| mh_magazine_fs_settings_url() | mh_fs_settings_url() |
| mh_magazine_fs_icon_url() | mh_fs_icon_url() |

## Core Functions

**Location:** includes/core/Custom-Functions.php

These functions are commonly used inside templates, hooks, and child theme overrides:

| Old Function Name | New Function Name |
| --- | --- |
| mh_magazine_theme_options() | mh_get_theme_options() |
| mh_magazine_get_option() | mh_get_option() |
| mh_magazine_excerpt() | mh_excerpt() |
| mh_magazine_custom_excerpt() | mh_custom_excerpt() |
| mh_magazine_post_meta() | mh_post_meta() |
| mh_magazine_comment_count() | mh_comment_count() |
| mh_magazine_container_class() | mh_container_class() |
| mh_magazine_sidebar_class() | mh_sidebar_class() |
| mh_magazine_sidebar_layout() | mh_sidebar_layout() |
| mh_magazine_detect_color() | mh_detect_color() |
| mh_magazine_slider_terms() | mh_slider_terms() |
| mh_magazine_featured_posts_small() | mh_featured_posts_small() |
| mh_magazine_featured_posts_large() | mh_featured_posts_large() |
| mh_magazine_featured_posts_grid() | mh_featured_posts_grid() |
| mh_magazine_featured_posts_list() | mh_featured_posts_list() |
| mh_magazine_featured_posts_ticker() | mh_featured_posts_ticker() |
| mh_magazine_featured_posts() | mh_featured_posts() |
| mh_magazine_spotlight() | mh_spotlight() |
| mh_magazine_magazine_grid() | mh_magazine_grid() |
| mh_magazine_magazine_list() | mh_magazine_list() |
| mh_magazine_magazine_content() | mh_magazine_content() |
| mh_magazine_widget_post_subheading() | mh_widget_post_subheading() |
| mh_magazine_loop_ads() | mh_loop_ads() |
| mh_magazine_sanitize_id_list() | mh_sanitize_id_list() |
| mh_magazine_sort_id_list() | mh_sort_id_list() |
| mh_magazine_html_class() | mh_add_html_class() |
| mh_magazine_body_class() | mh_add_body_class() |
| mh_magazine_boxed_container_open() | mh_boxed_container_open() |
| mh_magazine_boxed_container_close() | mh_boxed_container_close() |
| mh_magazine_wide_container_open() | mh_wide_container_open() |
| mh_magazine_wide_container_close() | mh_wide_container_close() |
| mh_magazine_featured_image() | mh_featured_image() |
| mh_magazine_excerpt_length() | mh_excerpt_length() |
| mh_magazine_excerpt_more() | mh_excerpt_more() |
| mh_magazine_pagination() | mh_pagination() |
| mh_magazine_author_box() | mh_author_box() |
| mh_magazine_postnav() | mh_postnav() |
| mh_magazine_related_content() | mh_related_content() |
| mh_magazine_archive_title_prefix() | mh_archive_title_prefix() |
| mh_magazine_loop_meta() | mh_loop_meta() / mh_widget_loop_meta() ^**(1)** |
| mh_magazine_loop_layout() | mh_loop_layout() |
| mh_magazine_cat_subheading() | mh_cat_subheading() |
| mh_magazine_subheading() | mh_post_subheading() |
| mh_magazine_media_queries() | mh_add_media_queries_support() |
| mh_magazine_back_to_top() | mh_back_to_top() |
| mh_magazine_footer_widgets() | mh_footer_widgets() |
| mh_magazine_second_sidebar() | mh_second_sidebar() |
| mh_magazine_year() | mh_year() |

***(1)** **mh_magazine_loop_meta()** was deprecated since v3.9.0. Use* ***mh_loop_meta()** for loop templates* *or **mh_widget_loop_meta()** for widget code (e.g. inside widget() methods) instead.*

## Premium Functions

**Location:** includes/premium/classes/

| Old Function name | New Function Name |
| --- | --- |
| mh_magazine_archive_ads() | mh_archive_ads() |
| mh_magazine_register_widgets() | mh_register_widgets() |

## Hook Functions (functions.php)

These hook functions remain available and are used throughout the theme:

```
mh_html_class()
mh_before_header()
mh_after_header()
mh_before_page_content()
mh_after_page_content()
mh_before_post_content()
mh_after_post_content()
mh_post_header()
mh_post_content_top()
mh_post_content_bottom()
mh_loop_content()
mh_cat_header()
mh_before_footer()
mh_after_footer()
mh_before_container_close()
```

---

## Functions Used in Template Files

If your child theme overrides templates, check for these function calls:

**Examples:**

```
404.php: mh_before_page_content(), mh_second_sidebar()archive.php: mh_before_page_content(), mh_cat_subheading(), mh_cat_header(), mh_author_box(), mh_loop_layout(), mh_pagination(), mh_second_sidebar()content-grid.php: mh_post_grid_class(), mh_post_meta()content-header.php: mh_custom_header()content-large.php: mh_post_meta()content-list.php: mh_post_meta()content-single.php: mh_post_subheading(), mh_post_meta(), mh_post_header(), mh_featured_image(), mh_post_content_top(), mh_post_content_bottom()footer.php: mh_before_footer(), mh_footer_widgets(), mh_wide_container_close(), mh_boxed_container_close(), mh_after_footer(), mh_copyright_notice()header.php: mh_html_class(), mh_add_header_widget(), mh_boxed_container_open(), mh_before_header(), mh_wide_container_open(), mh_after_header()index.php: mh_before_page_content(), mh_loop_layout(), mh_pagination(), mh_second_sidebar()page.php: mh_before_page_content(), mh_after_page_content(), mh_second_sidebar()search.php: mh_before_page_content(), mh_loop_layout(), mh_pagination(), mh_second_sidebar()single.php: mh_before_post_content(), mh_author_box(), mh_postnav(), mh_related_content(), mh_after_post_content(), mh_second_sidebar()template-authors.php: mh_before_page_content(), mh_second_sidebar()
```

If these functions are still referenced using the old **mh_magazine_*** prefix, they must be updated.

---

## Widget Class Names

If your child theme uses *unregister_widget()* or references widget class names directly, update them as follows:

| 4.x | 5.x (free) | 5.x (premium) |
| --- | --- | --- |
| mh_magazine_custom_posts | mh_custom_posts_widget | mh_custom_posts |
| mh_magazine_slider | mh_slider_hp_widget | mh_slider |
| mh_magazine_spotlight | — | mh_spotlight |

## Summary

MH Magazine 5.x introduces **breaking changes** for child themes due to:

- Function renaming
- File reorganisation
- A modernised, class-based architecture

If your child theme or custom code was written for **MH Magazine 4.x**, you will need to update function names and verify template overrides to restore compatibility.

If you are unsure where a function is defined in the new version, search for its new name inside the **includes/core/** and **includes/premium/** folders.
