Make 1.7 Beta 1
By on March 30, 2016
Make 1.7 is now in beta! This release has a lot of big under-the-hood changes, and we need your help with testing so we can make sure the update is as seamless as possible. Especially if you are using a child theme that makes any customizations involving PHP, we need your feedback!
As they say with WordPress core betas, this software is still in development, so we don’t recommend you run it on a production site.
The beta of the Make theme is available here.
The beta of the Make Plus plugin is available to Make Plus license holders. Find it in the Downloads section of your account.
Update: Make & Make Plus 1.7 have been released!
If you think you’ve found a bug, please create an issue on the Make GitHub repo, or send an email to [ttf_email]support@thethemefoundry.com[/ttf_email] and note that you’re testing the beta.
What’s new
The focus of this release was improvements to theme settings and how they are presented in the Customizer.
Here’s a rundown of the front end and admin changes in Make 1.7:
- Instant style previews in the Customizer
- A new, improved interface for managing Social Icons
- Color and typography settings for buttons
- Support for the Custom Logo functionality introduced in WordPress 4.5
- One-click migration of theme settings from the parent to the child (coming soon)
And in Make Plus 1.7:
- A new, improved interface for Typekit
- An improved interface for single post and page layout settings
- An option to make the site header “sticky” (coming soon)
- Style Kits and the Builder’s Quick Start templates feature have been removed
The biggest changes are actually behind the scenes. As Make has continued to evolve and grow in popularity, we’ve realized that we need to be more strategic in how we maintain code and build out new features.
Modular architecture
When we first built Make, most of the functionality was implemented the same way you see a lot of things in WordPress core: lots of procedural, global functions. This strategy keeps the code easy to follow and familiar to those who develop themes and plugins for WordPress. However, it also tends to lead to a couple of common coding pitfalls:
- Big, complex functions that do too much and can’t be reused
- A lot of small utility functions in the global public scope that may become dependencies for unintended purposes
What we’ve done in Make 1.7 is deprecate a lot of these global functions and encapsulate related functionality into “module” classes (Note, though, that we aren’t using namespaces, so Make is still compatible with the same minimum version of PHP as WordPress). This allows us to have smaller, more abstract functions that are kept to their intended scope, which makes our code DRYer, more flexible, and easier to test. This in turn lays a robust foundation for future enhancements to the theme and plugin.
Moving away from pluggable functions
The other thing we did when we first built Make was to make nearly all of the functions in the theme “pluggable”. This allows child themes and plugins to override an entire function by defining it before it gets defined in the theme. WordPress core also has pluggable functions, although it is no longer considered a best practice and they are no longer being added.
These pluggable functions in Make can cause problems, because they limit the effectiveness of improvements and iteration of the code. If a child theme overrides a function, we can no longer be sure that the function will return the expected value. If we change the logic within the parent function, the child theme’s version may still be using some or all of the outdated logic.
Many of Make’s pluggable functions are now deprecated in 1.7. In some cases we’ve added new action/filter hooks to maintain customizability.
A full list of deprecated functions is included at the end of this post.
Error reporting
WordPress has a class for handling errors, but it doesn’t have a very good way of surfacing these errors. Since Make 1.7 deprecates a lot of code, we needed a way to display the deprecation notices that would get the site administrator’s attention without disrupting or breaking the layout of the site for visitors.
What we came up with is a notification in the Admin Bar that only displays for logged in users who have the capability to install/change themes.
Click on the notification, and an overlay will appear that displays the Make error messages and a backtrace to the location of the error in the code, when possible.
These notifications can also be turned off via a filter, but it is more advisable to fix the errors instead. 😉
New APIs
Moving to a modular architecture gave us the opportunity to expand the theme’s APIs to improve developers’ abilities to go further with their Make sites. We haven’t completed the documentation for these APIs yet, but here are a few example uses:
- Settings: change default values, specify sanitize callbacks that automatically run when the setting value is retrieved.
- Fonts: add your own web fonts and make them available in the list of font families in the Customizer.
- Social Icons: change or add to the available icons in the site header/footer.
Deprecated functions
The following functions are deprecated. They will trigger a Make error if used or overridden in a child theme. If there is a direct replacement for the function, it will be called instead.
- ttfmake_action_backcompat
- ttfmake_add_customizations
- ttfmake_admin_notice
- ttfmake_all_font_choices
- ttfmake_all_font_choices_js
- ttfmake_backcompat_action
- ttfmake_backcompat_filter
- ttfmake_body_classes
- ttfmake_builder_banner_css
- ttfmake_builder_css
- ttfmake_category_transient_flusher
- ttfmake_check_package
- ttfmake_choose_google_font_variants
- ttfmake_content_width
- ttfmake_convert_px_to_rem
- ttfmake_css_background
- ttfmake_css_color
- ttfmake_css_fonts
- ttfmake_css_layout
- ttfmake_customizer_add_panels
- ttfmake_customizer_add_section_options
- ttfmake_customizer_add_sections
- ttfmake_customizer_background
- ttfmake_customizer_background_image_group_definitions
- ttfmake_customizer_control_autoload
- ttfmake_customizer_convert_theme_mods_filter
- ttfmake_customizer_convert_theme_mods_values
- ttfmake_customizer_define_background_images_sections
- ttfmake_customizer_define_colorscheme_sections
- ttfmake_customizer_define_contentlayout_sections
- ttfmake_customizer_define_general_sections
- ttfmake_customizer_define_typography_sections
- ttfmake_customizer_get_key_conversions
- ttfmake_customizer_get_panels
- ttfmake_customizer_get_sections
- ttfmake_customizer_init
- ttfmake_customizer_layout_breadcrumb_group_definitions
- ttfmake_customizer_layout_comment_count_group_definitions
- ttfmake_customizer_layout_content_group_definitions
- ttfmake_customizer_layout_featured_image_group_definitions
- ttfmake_customizer_layout_post_author_group_definitions
- ttfmake_customizer_layout_post_date_group_definitions
- ttfmake_customizer_layout_post_meta_group_definitions
- ttfmake_customizer_layout_region_group_definitions
- ttfmake_customizer_navigation
- ttfmake_customizer_preview_script
- ttfmake_customizer_register_autoload
- ttfmake_customizer_scripts
- ttfmake_customizer_set_transport
- ttfmake_customizer_set_up_theme_mod_conversions
- ttfmake_customizer_sitetitletagline
- ttfmake_customizer_staticfrontpage
- ttfmake_customizer_stylekit
- ttfmake_customizer_typography_group_definitions
- ttfmake_cycle2_script_setup
- ttfmake_edit_page_script
- ttfmake_embed_container
- ttfmake_excerpt_more
- ttfmake_filter_backcompat
- ttfmake_font_choices_placeholder
- ttfmake_font_get_relative_sizes
- ttfmake_formatting
- ttfmake_formatting_init
- ttfmake_frontend_builder_scripts
- ttfmake_get_all_fonts
- ttfmake_get_choices
- ttfmake_get_css
- ttfmake_get_default
- ttfmake_get_font_property_option_keys
- ttfmake_get_font_stack
- ttfmake_get_gallery_slider
- ttfmake_get_google_font_subsets
- ttfmake_get_google_font_uri
- ttfmake_get_google_fonts
- ttfmake_get_logo
- ttfmake_get_plus_link
- ttfmake_get_relative_font_size
- ttfmake_get_social_links
- ttfmake_get_standard_fonts
- ttfmake_get_view
- ttfmake_has_sidebar
- ttfmake_head_early
- ttfmake_head_late
- ttfmake_hex_to_rgb
- ttfmake_is_plus
- ttfmake_is_preview
- ttfmake_jetpack_infinite_scroll_footer_callback
- ttfmake_jetpack_infinite_scroll_has_footer_widgets
- ttfmake_jetpack_infinite_scroll_render
- ttfmake_jetpack_remove_sharing
- ttfmake_jetpack_setup
- ttfmake_load_textdomains
- ttfmake_maybe_add_with_avatar_class
- ttfmake_maybe_show_social_links
- ttfmake_option_defaults
- ttfmake_page_menu_args
- ttfmake_parse_font_properties
- ttfmake_parse_link_underline
- ttfmake_plus_styles
- ttfmake_plus_upgrade_notices
- ttfmake_pre_wp_nav_menu_social
- ttfmake_refresh_logo_cache
- ttfmake_register_admin_notice
- ttfmake_require_files
- ttfmake_sanitize_choice
- ttfmake_sanitize_float
- ttfmake_sanitize_font_choice
- ttfmake_sanitize_font_subset
- ttfmake_sanitize_text
- ttfmake_scripts
- ttfmake_setup
- ttfmake_sidebar_description
- ttfmake_sidebar_list_enabled
- ttfmake_upgrade_notices
- ttfmake_widgets_init
- ttfmake_woocommerce_after_main_content
- ttfmake_woocommerce_before_main_content
- ttfmake_woocommerce_init
- ttfmake_wp_title
- ttfmake_yoast_seo_breadcrumb
- ttfmp_add_admin_notices
- ttfmp_admin_notice
- ttfmp_edd_add_color_css
- ttfmp_edd_get_section_definitions
- ttfmp_get_app
- ttfmp_get_duplicator
- ttfmp_get_edd
- ttfmp_get_page_duplicator
- ttfmp_get_perpage
- ttfmp_get_perpage_metabox
- ttfmp_get_perpage_options
- ttfmp_get_post_list
- ttfmp_get_quick_start
- ttfmp_get_section_duplicator
- ttfmp_get_shop_settings
- ttfmp_get_shop_sidebar
- ttfmp_get_sidebar_management
- ttfmp_get_style_kits
- ttfmp_get_template_collector
- ttfmp_get_template_url
- ttfmp_get_text_column_layout
- ttfmp_get_typekit
- ttfmp_get_typekit_customizer
- ttfmp_get_widget_area
- ttfmp_get_woocommerce
- ttfmp_post_list_get_section_definitions
- ttfmp_register_admin_notice
- ttfmp_register_sidebar
- ttfmp_register_template
- ttfmp_sideload_image
- ttfmp_style_kit_definitions
- ttfmp_woocommerce_add_color_css
- ttfmp_woocommerce_get_section_definitions
- ttfmp_woocommerce_legacy_color
- ttfmp_woocommerce_product_grid_shortcode
- ttf_recursive_stripslashes
Deprecated action and filter hooks
The following hooks are deprecated, but will continue to work without disruption. They will still trigger a Make error, however, so their use should be discontinued.
Update: Some of the hooks that were previously listed under “no longer used” have been moved up to the “continue to work” list.
- make_css
- make_all_font_choices
- make_all_fonts
- make_font_variants
- make_format_builder_format_models
- make_get_default
- make_get_google_fonts
- make_get_standard_fonts
- make_get_view
- make_read_more_text
- make_sanitize_choice
- make_sanitize_font_choice
- make_sanitize_font_subset
- make_setting_choices
- make_setting_defaults
- make_supported_social_icons
- ttfmake_builder_js_dependencies
- ttfmake_custom_logo_information
- ttfmake_custom_logo_max_width
- ttfmp_color_highlight_description
- ttfmp_perpage_keys
- ttfmp_perpage_post_types
- ttfmp_perpage_view
- ttfmp_post_list_output
- ttfmp_post_list_query_args
- ttfmp_post_list_template_paths
- ttfmp_shop_layout_product_description
- ttfmp_shop_layout_shop_description
- ttfmp_woocommerce_product_grid_output
- ttfmp_woocommerce_product_grid_query_args
The following hooks are no longer used in the code. They will trigger a Make error, and functions added to the hooks will no longer be called.
- make_css_font_properties
- make_customizer_background_image_group_definitions
- make_customizer_background_sections
- make_customizer_colorscheme_sections
- make_customizer_contentlayout_sections
- make_customizer_header_sections
- make_customizer_footer_sections
- make_customizer_control_path
- make_customizer_general_sections
- make_customizer_typography_group_definitions
- make_customizer_typography_sections
- make_get_google_font_subsets
- make_required_files
- make_sidebar_list_enabled
- make_social_links
- ttfmp_perpage_allowed_keys
- ttfmp_style_kit_allowed_option_keys
- ttfmp_style_kit_definitions