0
Validation results

Savoy

Savoy

WordPress 4.9.8 theme
0
Critical alerts
  1. Customizer : Sanitization of Customizer settings Found a Customizer setting that did not have a sanitization callback function in file extension_customizer.php. Every call to the add_setting() method needs to have a sanitization callback function passed.
  2. Malware : Operations on file system fopen was found in the file class.redux_helpers.php
    Ligne657: //$fp = fopen( $file, 'r' );
    fread was found in the file class.redux_helpers.php
    Ligne660: //$file_data = fread( $fp, 8192 );
    fclose was found in the file class.redux_helpers.php
    Ligne663: //fclose( $fp );
  3. Admin menu : Themes should use add_theme_page() for adding admin pages. File framework.php :
    Ligne1347: // wrappers and need to be appened to using add_submenu_page.
    Ligne1398: $this->page = call_user_func( 'add_submenu_page', $page_parent, $page_title, $menu_title, $page_permission
    Ligne1456: call_user_func( 'add_submenu_page', $this->args['page_slug'], $section['title'], $section['t
    File framework.php :
    Ligne1347: // wrappers and need to be appened to using add_submenu_page.
    Ligne1398: $this->page = call_user_func( 'add_submenu_page', $page_parent, $page_title, $menu_title, $page_permission
    Ligne1456: call_user_func( 'add_submenu_page', $this->args['page_slug'], $section['title'], $section['t
    File framework.php :
    Ligne1424: $this->page = call_user_func( 'add_menu_page', $this->args['page_title'], $this->args['menu_title'], $this
    File framework.php :
    Ligne1347: // wrappers and need to be appened to using add_submenu_page.
    Ligne1398: $this->page = call_user_func( 'add_submenu_page', $page_parent, $page_title, $menu_title, $page_permission
    Ligne1456: call_user_func( 'add_submenu_page', $this->args['page_slug'], $section['title'], $section['t
    File welcome.php :
    Ligne201: $page = 'add_management_page';
    File options-config.php :
    Ligne70: // For a full list of options, visit: http://codex.wordpress.org/Function_Reference/add_submenu_page#Parameters
  4. Hidden admin bar : Hidden admin Bar Themes should not hide admin bar. Detected in file : functions.php.
  5. Included plugins : Zip file found Plugins are not allowed in themes. The zip file found was nm-portfolio.zip nm-post-types.zip envato-market.zip js_composer.zip nm-wishlist.zip.
Warning
  1. core scripts deregistered : Core scripts deregistrationFound wp_deregister_script in init.php. Themes must not deregister core scripts.
    Ligne42: wp_deregister_script( 'wpb_composer_front_js' );
    Ligne71: wp_deregister_script( 'vc_accordion_script' );
    Ligne72: wp_deregister_script( 'vc_tta_autoplay_script' );
    Ligne73: wp_deregister_script( 'vc_tabs_script' );
    Found wp_deregister_script in framework.php. Themes must not deregister core scripts.
    Ligne565: wp_deregister_script( 'wpb_ace' );
    Found wp_deregister_script in enqueue.php. Themes must not deregister core scripts.
    Ligne215: wp_deregister_script( 'jquerySelect2' );
  2. theme tags : Presence of bad theme tagsThe tag brown has been deprecated, it must be removed from style.css header.The tag black has been deprecated, it must be removed from style.css header.The tag gray has been deprecated, it must be removed from style.css header.The tag orange has been deprecated, it must be removed from style.css header.The tag tan has been deprecated, it must be removed from style.css header.The tag white has been deprecated, it must be removed from style.css header.The tag yellow has been deprecated, it must be removed from style.css header.The tag light has been deprecated, it must be removed from style.css header.The tag fluid-layout has been deprecated, it must be removed from style.css header.The tag responsive-layout has been deprecated, it must be removed from style.css header.
  3. Text domain : Incorrect use of translation functions.More than one text-domain is being used in this theme. This means the theme will not be compatible with WordPress.org language packs. The domains found are nm-framework, nm-framework-admin, js_composer, woocommerce, redux-framework, themecheck, tgmpa.
  4. Cdn : Use of CDNFound the URL of a CDN in the code: maxcdn.bootstrapcdn.com/font-awesome. CSS or Javascript resources should not be loaded from a CDN. These resources should be bundled with the theme.
  5. Plugin territory : Plugin territory functionalitiesThe theme uses the add_shortcode() function. Custom post-content shortcodes are plugin-territory functionality.
  6. Custom elements : Presence of custom headerNo reference to custom header was found in the theme.
  7. Custom elements : Presence of custom backgroundNo reference to custom background was found in the theme.
  8. Editor style : Presence of editor styleNo reference to add_editor_style() was found in the theme. It is recommended that the theme implements editor styling, so as to make the editor content match the resulting post output in the theme, for a better user experience.
  9. Screenshot : Screenshot fileScreenshot size is 880x660px. Screenshot size should be 1200x900, to account for HiDPI displays. Any 4:3 image size is acceptable, but 1200x900 is preferred.Bad screenshot file extension ! File screenshot.png is not an actual JPG file. Detected type was : "image/png".
Tip-off
  1. Static links : Presence of hard-coded linksPossible hard-coded links were found in the file google-map.php.
    Ligne15: 'description'	=> sprintf( __( 'Enter your %sGoogle Maps API key%s.', 'nm-framework-admin' ), '<a href='https://developers.google.com/maps/documentation/javascript/get-api-key'>',
    Possible hard-coded links were found in the file welcome.php.
    Ligne482: <a href='http://docs.reduxframework.com/' class='docs button button-primary'>Docs</a
    Ligne485: <a href='https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=MMFMHW
    Possible hard-coded links were found in the file options-config.php.
    Ligne204: 'desc'		=> __( 'Include the <a href='http://fortawesome.github.io/Font-Awesome/icons/' target='_blank'>Font Awes
    Ligne2229: 'desc'		=> 'Display <a href='http://en.gravatar.com/' target='_blank'>gravatar</a> profile image.',
  2. Optional files : Presence of rtl stylesheet rtl.cssThis theme does not contain optional file rtl.php.
  3. Optional files : Presence of front page template file front-page.phpThis theme does not contain optional file front-page.php.
  4. Optional files : Presence of home template file home.phpThis theme does not contain optional file home.php.
  5. Optional files : Presence of term template file taxonomy.phpThis theme does not contain optional file taxonomy.php.
  6. Optional files : Presence of date/time template file date.phpThis theme does not contain optional file date.php.
  7. Optional files : Presence of attachment template file attachment.phpThis theme does not contain optional file attachment.php.
  8. Optional files : Presence of image template file image.phpThis theme does not contain optional file image.php.
  9. Use of includes : Use of include or requireThe theme appears to use include or require : init.php
    Ligne97: include( NM_VC_DIR . '/shortcodes/banner.php' );
    Ligne98: include( NM_VC_DIR . '/shortcodes/banner-slider.php' );
    Ligne99: include( NM_VC_DIR . '/shortcodes/button.php' );
    Ligne100: if ( $nm_cf7_enabled ) { include( NM_VC_DIR . '/shortcodes/contact-form-7.php' ); }
    Ligne101: include( NM_VC_DIR . '/shortcodes/feature-box.php' );
    Ligne102: include( NM_VC_DIR . '/shortcodes/google-map.php' );
    Ligne103: include( NM_VC_DIR . '/shortcodes/lightbox.php' );
    Ligne104: include( NM_VC_DIR . '/shortcodes/post-slider.php' );
    Ligne105: include( NM_VC_DIR . '/shortcodes/social-profiles.php' );
    Ligne106: include( NM_VC_DIR . '/shortcodes/testimonial.php' );
    Ligne110: include( NM_VC_DIR . '/shortcodes/woocommerce/product-categories.php' );
    Ligne111: include( NM_VC_DIR . '/shortcodes/woocommerce/product-search.php' );
    Ligne112: include( NM_VC_DIR . '/shortcodes/woocommerce/product-slider.php' );
    Ligne120: include( NM_VC_DIR . '/page-templates.php' );
    Ligne127: include( NM_VC_DIR . '/elements/banner.php' );
    Ligne128: include( NM_VC_DIR . '/elements/banner-slider.php' );
    Ligne129: include( NM_VC_DIR . '/elements/button.php' );
    Ligne130: if ( $nm_cf7_enabled ) { include( NM_VC_DIR . '/elements/contact-form-7.php' ); }
    Ligne131: include( NM_VC_DIR . '/elements/feature-box.php' );
    Ligne132: include( NM_VC_DIR . '/elements/google-map.php' );
    Ligne133: include( NM_VC_DIR . '/elements/lightbox.php' );
    Ligne134: include( NM_VC_DIR . '/elements/post-slider.php' );
    Ligne135: include( NM_VC_DIR . '/elements/social-profiles.php' );
    Ligne136: include( NM_VC_DIR . '/elements/testimonial.php' );
    Ligne140: include( NM_VC_DIR . '/elements/woocommerce/product-categories.php' );
    Ligne141: include( NM_VC_DIR . '/elements/woocommerce/product-search.php' );
    Ligne142: include( NM_VC_DIR . '/elements/woocommerce/product-slider.php' );
    Ligne149: include( NM_DIR . '/visual-composer/elements-config.php' );
    Ligne153: include( NM_VC_DIR . '/params/iconpicker.php' );
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : framework.php
    Ligne410: require_once 'core/dashboard.php';
    Ligne414: require_once 'core/newsflash.php';
    Ligne1705: require_once 'core/enqueue.php';
    Ligne2852: require_once 'core/enqueue.php';
    Ligne2910: require_once 'core/panel.php';
    Ligne3258: require_once 'core/panel.php';
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : extension_customizer.php
    Ligne749: require_once( $class_file );
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : welcome.php
    Ligne378: require_once 'views/about.php';
    Ligne393: require_once 'views/changelog.php';
    Ligne408: require_once 'views/extensions.php';
    Ligne424: require_once 'views/support.php';
    Ligne439: require_once 'views/credits.php';
    Ligne454: require_once 'views/status_report.php';
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : field_button_set.php
    Ligne46: *              ['format']      string Formatting options for paginate fields. Options include ('currency','nice','niceShort','timeAgoInWords' or a valid Date() f
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : config.php
    Ligne34: require_once( NM_DIR . '/tgmpa/class-tgm-plugin-activation.php' );
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.

This is a ThemeForest theme. Since Themeforest items are all checked by a human before they appear on their website, ThemeForest verification rules are more permissive than themecheck's and can give a better verification score ( Themeforest requirements ).

34
Critical alerts
  1. Customizer : Sanitization of Customizer settings Found a Customizer setting that did not have a sanitization callback function in file extension_customizer.php. Every call to the add_setting() method needs to have a sanitization callback function passed.
  2. Hidden admin bar : Hidden admin Bar Themes should not hide admin bar. Detected in file : functions.php.
  3. Included plugins : Zip file found Plugins are not allowed in themes. The zip file found was nm-portfolio.zip nm-post-types.zip envato-market.zip js_composer.zip nm-wishlist.zip.
Warning
  1. core scripts deregistered : Core scripts deregistrationFound wp_deregister_script in init.php. Themes must not deregister core scripts.
    Ligne42: wp_deregister_script( 'wpb_composer_front_js' );
    Ligne71: wp_deregister_script( 'vc_accordion_script' );
    Ligne72: wp_deregister_script( 'vc_tta_autoplay_script' );
    Ligne73: wp_deregister_script( 'vc_tabs_script' );
    Found wp_deregister_script in framework.php. Themes must not deregister core scripts.
    Ligne565: wp_deregister_script( 'wpb_ace' );
    Found wp_deregister_script in enqueue.php. Themes must not deregister core scripts.
    Ligne215: wp_deregister_script( 'jquerySelect2' );
  2. theme tags : Presence of bad theme tagsThe tag brown has been deprecated, it must be removed from style.css header.The tag black has been deprecated, it must be removed from style.css header.The tag gray has been deprecated, it must be removed from style.css header.The tag orange has been deprecated, it must be removed from style.css header.The tag tan has been deprecated, it must be removed from style.css header.The tag white has been deprecated, it must be removed from style.css header.The tag yellow has been deprecated, it must be removed from style.css header.The tag light has been deprecated, it must be removed from style.css header.The tag fluid-layout has been deprecated, it must be removed from style.css header.The tag responsive-layout has been deprecated, it must be removed from style.css header.
  3. Text domain : Incorrect use of translation functions.More than one text-domain is being used in this theme. This means the theme will not be compatible with WordPress.org language packs. The domains found are nm-framework, nm-framework-admin, js_composer, woocommerce, redux-framework, themecheck, tgmpa.
  4. Cdn : Use of CDNFound the URL of a CDN in the code: maxcdn.bootstrapcdn.com/font-awesome. CSS or Javascript resources should not be loaded from a CDN. These resources should be bundled with the theme.
  5. Plugin territory : Plugin territory functionalitiesThe theme uses the add_shortcode() function. Custom post-content shortcodes are plugin-territory functionality.
  6. Screenshot : Screenshot fileScreenshot size is 880x660px. Screenshot size should be 1200x900, to account for HiDPI displays. Any 4:3 image size is acceptable, but 1200x900 is preferred.Bad screenshot file extension ! File screenshot.png is not an actual JPG file. Detected type was : "image/png".
Tip-off
  1. Static links : Presence of hard-coded linksPossible hard-coded links were found in the file google-map.php.
    Ligne15: 'description'	=> sprintf( __( 'Enter your %sGoogle Maps API key%s.', 'nm-framework-admin' ), '<a href='https://developers.google.com/maps/documentation/javascript/get-api-key'>',
    Possible hard-coded links were found in the file welcome.php.
    Ligne482: <a href='http://docs.reduxframework.com/' class='docs button button-primary'>Docs</a
    Ligne485: <a href='https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=MMFMHW
    Possible hard-coded links were found in the file options-config.php.
    Ligne204: 'desc'		=> __( 'Include the <a href='http://fortawesome.github.io/Font-Awesome/icons/' target='_blank'>Font Awes
    Ligne2229: 'desc'		=> 'Display <a href='http://en.gravatar.com/' target='_blank'>gravatar</a> profile image.',
  2. Optional files : Presence of rtl stylesheet rtl.cssThis theme does not contain optional file rtl.php.
  3. Optional files : Presence of front page template file front-page.phpThis theme does not contain optional file front-page.php.
  4. Optional files : Presence of home template file home.phpThis theme does not contain optional file home.php.
  5. Optional files : Presence of term template file taxonomy.phpThis theme does not contain optional file taxonomy.php.
  6. Optional files : Presence of date/time template file date.phpThis theme does not contain optional file date.php.
  7. Optional files : Presence of attachment template file attachment.phpThis theme does not contain optional file attachment.php.
  8. Optional files : Presence of image template file image.phpThis theme does not contain optional file image.php.
  9. Use of includes : Use of include or requireThe theme appears to use include or require : init.php
    Ligne97: include( NM_VC_DIR . '/shortcodes/banner.php' );
    Ligne98: include( NM_VC_DIR . '/shortcodes/banner-slider.php' );
    Ligne99: include( NM_VC_DIR . '/shortcodes/button.php' );
    Ligne100: if ( $nm_cf7_enabled ) { include( NM_VC_DIR . '/shortcodes/contact-form-7.php' ); }
    Ligne101: include( NM_VC_DIR . '/shortcodes/feature-box.php' );
    Ligne102: include( NM_VC_DIR . '/shortcodes/google-map.php' );
    Ligne103: include( NM_VC_DIR . '/shortcodes/lightbox.php' );
    Ligne104: include( NM_VC_DIR . '/shortcodes/post-slider.php' );
    Ligne105: include( NM_VC_DIR . '/shortcodes/social-profiles.php' );
    Ligne106: include( NM_VC_DIR . '/shortcodes/testimonial.php' );
    Ligne110: include( NM_VC_DIR . '/shortcodes/woocommerce/product-categories.php' );
    Ligne111: include( NM_VC_DIR . '/shortcodes/woocommerce/product-search.php' );
    Ligne112: include( NM_VC_DIR . '/shortcodes/woocommerce/product-slider.php' );
    Ligne120: include( NM_VC_DIR . '/page-templates.php' );
    Ligne127: include( NM_VC_DIR . '/elements/banner.php' );
    Ligne128: include( NM_VC_DIR . '/elements/banner-slider.php' );
    Ligne129: include( NM_VC_DIR . '/elements/button.php' );
    Ligne130: if ( $nm_cf7_enabled ) { include( NM_VC_DIR . '/elements/contact-form-7.php' ); }
    Ligne131: include( NM_VC_DIR . '/elements/feature-box.php' );
    Ligne132: include( NM_VC_DIR . '/elements/google-map.php' );
    Ligne133: include( NM_VC_DIR . '/elements/lightbox.php' );
    Ligne134: include( NM_VC_DIR . '/elements/post-slider.php' );
    Ligne135: include( NM_VC_DIR . '/elements/social-profiles.php' );
    Ligne136: include( NM_VC_DIR . '/elements/testimonial.php' );
    Ligne140: include( NM_VC_DIR . '/elements/woocommerce/product-categories.php' );
    Ligne141: include( NM_VC_DIR . '/elements/woocommerce/product-search.php' );
    Ligne142: include( NM_VC_DIR . '/elements/woocommerce/product-slider.php' );
    Ligne149: include( NM_DIR . '/visual-composer/elements-config.php' );
    Ligne153: include( NM_VC_DIR . '/params/iconpicker.php' );
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : framework.php
    Ligne410: require_once 'core/dashboard.php';
    Ligne414: require_once 'core/newsflash.php';
    Ligne1705: require_once 'core/enqueue.php';
    Ligne2852: require_once 'core/enqueue.php';
    Ligne2910: require_once 'core/panel.php';
    Ligne3258: require_once 'core/panel.php';
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : extension_customizer.php
    Ligne749: require_once( $class_file );
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : welcome.php
    Ligne378: require_once 'views/about.php';
    Ligne393: require_once 'views/changelog.php';
    Ligne408: require_once 'views/extensions.php';
    Ligne424: require_once 'views/support.php';
    Ligne439: require_once 'views/credits.php';
    Ligne454: require_once 'views/status_report.php';
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : field_button_set.php
    Ligne46: *              ['format']      string Formatting options for paginate fields. Options include ('currency','nice','niceShort','timeAgoInWords' or a valid Date() f
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
    The theme appears to use include or require : config.php
    Ligne34: require_once( NM_DIR . '/tgmpa/class-tgm-plugin-activation.php' );
    If these are being used to include separate sections of a template from independent files, then get_template_part() should be used instead. Otherwise, use include_once or require_once instead.
Other checked themes