Porto
WordPress 6.6.2 theme
- THEME TYPEWordPress theme 6.6.2
- FILE NAMEporto.zip
- FILE SIZE25836870 bytes
- MD506657c112dc73d8bdc9b6363945b70fd
- SHA175ed9e051a69b5b2dd23466ba15408cab638ce66
- LICENSECustom
- FILES INCLUDEDCSS, PHP, XML, Bitmap images, Adobe Photoshop, Adobe Illustrator
- THEME URIhttp://www.portotheme.com/wordpress/porto
- VERSION5.0.1
- AUTHOR URIhttp://www.portotheme.com/
- TAGSwoocommerce, corporate, ecommerce, responsive, blue, black, green, white, light, dark, red, two-columns, three-columns, four-columns, left-sidebar, right-sidebar, fixed-layout, responsive-layout, custom-menu, editor-style, featured-images, flexible-header,
- CREATION DATE2019-10-06
- LAST FILE UPDATE2019-10-06
- LAST VALIDATION2019-10-06 16:43
- OTHER VERSIONS
This theme seems to be proprietary. Themecheck doesn't distribute commercial themes.
Critical alerts
- base64_decode( $block['content'] ); Found base64_decode in file porto-studio.php. 108: $block_content =
- file_get_contents( $source_path );fopen was found in the file class.redux_helpers.php 646: // $fp = fopen( $file, 'r' );fread was found in the file class.redux_helpers.php 649: // $file_data = fread( $fp, 8192 );fclose was found in the file class.redux_helpers.php 652: // fclose( $fp ); file_get_contents was found in the file importer-api.php 144: $body = @
- add_menu_page( 'Porto', 'Porto', 'administrator', 'porto', array( $this, 'wFile admin.php : 86: $welcome = add_submenu_page( 'porto', __( 'Theme license', 'porto' ), __( 'Theme Licen87: $changelog = add_submenu_page( 'porto', __( 'Change Log', 'porto' ), __( 'Change Log', '89: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'porto' ), __( 'Theme Optio90: $theme_options = add_submenu_page( 'porto', __( 'Advanced Options', 'porto' ), __( 'Advanced92: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'porto' ), __( 'Theme OptioFile admin.php : 86: $welcome = add_submenu_page( 'porto', __( 'Theme license', 'porto' ), __( 'Theme Licen87: $changelog = add_submenu_page( 'porto', __( 'Change Log', 'porto' ), __( 'Change Log', '89: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'porto' ), __( 'Theme Optio90: $theme_options = add_submenu_page( 'porto', __( 'Advanced Options', 'porto' ), __( 'Advanced92: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'porto' ), __( 'Theme OptioFile admin.php : 86: $welcome = add_submenu_page( 'porto', __( 'Theme license', 'porto' ), __( 'Theme Licen87: $changelog = add_submenu_page( 'porto', __( 'Change Log', 'porto' ), __( 'Change Log', '89: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'porto' ), __( 'Theme Optio90: $theme_options = add_submenu_page( 'porto', __( 'Advanced Options', 'porto' ), __( 'Advanced92: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'porto' ), __( 'Theme OptioFile admin.php : 86: $welcome = add_submenu_page( 'porto', __( 'Theme license', 'porto' ), __( 'Theme Licen87: $changelog = add_submenu_page( 'porto', __( 'Change Log', 'porto' ), __( 'Change Log', '89: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'porto' ), __( 'Theme Optio90: $theme_options = add_submenu_page( 'porto', __( 'Advanced Options', 'porto' ), __( 'Advanced92: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'porto' ), __( 'Theme OptioFile admin.php : 86: $welcome = add_submenu_page( 'porto', __( 'Theme license', 'porto' ), __( 'Theme Licen87: $changelog = add_submenu_page( 'porto', __( 'Change Log', 'porto' ), __( 'Change Log', '89: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'porto' ), __( 'Theme Optio90: $theme_options = add_submenu_page( 'porto', __( 'Advanced Options', 'porto' ), __( 'Advanced92: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'porto' ), __( 'Theme OptioFile framework.php : 1270: // wrappers and need to be appened to using add_submenu_page.1322: 'add_submenu_page',1393: 'add_submenu_page',File framework.php : 1270: // wrappers and need to be appened to using add_submenu_page.1322: 'add_submenu_page',1393: 'add_submenu_page',File framework.php : 1360: 'add_menu_page',File framework.php : 1270: // wrappers and need to be appened to using add_submenu_page.1322: 'add_submenu_page',1393: 'add_submenu_page',File speed_optimize_wizard.php : 94: add_submenu_page( 'porto', esc_html__( 'Speed Optimize Wizard', 'porto' ), File setup_wizard.php : 774: add_submenu_page( 'porto', esc_html__( 'Setup Wizard', 'porto' ), esc_html_ File admin.php : 85: $welcome_screen =
revslider.zip geodirectory-porto-theme-compatibility-pack.zip js_composer.zip porto-functionality.zip
.
Plugins are not allowed in themes. The zip file found was
Warning
- Found wrong tag woocommerce in style.css header.Found wrong tag corporate in style.css header.Found wrong tag ecommerce in style.css header.Found wrong tag responsive in style.css header.The tag blue 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 green 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 light has been deprecated, it must be removed from style.css header.The tag dark has been deprecated, it must be removed from style.css header.The tag red has been deprecated, it must be removed from style.css header.The tag fixed-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.Themes that use the tag accessibility-ready will need to undergo an accessibility review.
See https://make.wordpress.org/themes/handbook/review/accessibility/ - Found a translation function that is missing a text-domain. Function esc_html__, with the arguments 'View %s' in file content-archive-event-list.php.Found a translation function that is missing a text-domain. Function __, with the arguments 'Excerpt length is based on words or characters?' in file settings.php.Found a translation function that is missing a text-domain. Function esc_html__, with the arguments 'View %s' in file content-archive-event-grid.php.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 porto, woocommerce, js_composer, tgmpa, redux-framework.
- PHP short tags were found in file parsedown.php. "This practice is discouraged because they are only available if enabled with short_open_tag php.ini configuration file directive, or if PHP was configured with the --enable-short-tags option" (php.net), which is not the case on many servers.653: if ( preg_match( '/^\[(.+?)\]:[ ]*<?(\S+?)>?(?:[ ]+['\'(](.+)['\')])?[ ]*$/', $Line['text'], $matches ) ) {
- Possible variable $key found in translation function in speed_optimize_wizard.php. Translation function calls should not contain PHP variables.
- Screenshot 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
- Possible hard-coded links were found in the file yit-pointers.php.72: '<h3> %s </h3> <p> %s </p> <p> %s <a href='http://yithemes.com/product-category/plugins/' target='_blank'>Yithemes.com90: '<h3> %s </h3> <p> %s </p> <p> %s <a href='http://yithemes.com/product-category/plugins/' target='_blank'>Yithemes.com72: '<h3> %s </h3> <p> %s </p> <p> %s <a href='http://yithemes.com/product-category/plugins/' target='_blank'>Yithemes.com90: '<h3> %s </h3> <p> %s </p> <p> %s <a href='http://yithemes.com/product-category/plugins/' target='_blank'>Yithemes.comPossible hard-coded links were found in the file class-tgm-plugin-activation.php.2751: $action_links['register'] = '<span style='color:#666'>Please</span> <a href='admin.php?page=porto'>register</a> <span style='color:#666'>the theme</spanPossible hard-coded links were found in the file admin.php.41: $this->add_wp_toolbar_menu_item( $porto_parent_menu_title, false, admin_url( 'admin.php?page=porto' ), array( 'class' => 'porto-menu' ), 'porto' );48: $this->add_wp_toolbar_menu_item( __( 'Theme License', 'porto' ), 'porto', admin_url( 'admin.php?page=porto' ) );49: $this->add_wp_toolbar_menu_item( __( 'Change Log', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-changelog' ) );50: $this->add_wp_toolbar_menu_item( __( 'Setup Wizard', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-setup-wizard' ) );51: $this->add_wp_toolbar_menu_item( __( 'Speed Optimize Wizard', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-speed-optimize-wizard' ) );257: return new WP_Error( 'not_registerd', __( 'Please <a href='admin.php?page=porto'>register</a> Porto theme to get access to pre-built d365: <p>Please <a href='admin.php?page=porto'>register</a> porto theme to get access to pre-built d400: $('.themes .theme.active .theme-screenshot').after('<div class='notice update-message notice-error notice-alt'><p>Please <a href='admin.php?page=porto' class='button-link'>verify purchase</a> to get update41: $this->add_wp_toolbar_menu_item( $porto_parent_menu_title, false, admin_url( 'admin.php?page=porto' ), array( 'class' => 'porto-menu' ), 'porto' );48: $this->add_wp_toolbar_menu_item( __( 'Theme License', 'porto' ), 'porto', admin_url( 'admin.php?page=porto' ) );49: $this->add_wp_toolbar_menu_item( __( 'Change Log', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-changelog' ) );50: $this->add_wp_toolbar_menu_item( __( 'Setup Wizard', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-setup-wizard' ) );51: $this->add_wp_toolbar_menu_item( __( 'Speed Optimize Wizard', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-speed-optimize-wizard' ) );257: return new WP_Error( 'not_registerd', __( 'Please <a href='admin.php?page=porto'>register</a> Porto theme to get access to pre-built d365: <p>Please <a href='admin.php?page=porto'>register</a> porto theme to get access to pre-built d400: $('.themes .theme.active .theme-screenshot').after('<div class='notice update-message notice-error notice-alt'><p>Please <a href='admin.php?page=porto' class='button-link'>verify purchase</a> to get update41: $this->add_wp_toolbar_menu_item( $porto_parent_menu_title, false, admin_url( 'admin.php?page=porto' ), array( 'class' => 'porto-menu' ), 'porto' );48: $this->add_wp_toolbar_menu_item( __( 'Theme License', 'porto' ), 'porto', admin_url( 'admin.php?page=porto' ) );49: $this->add_wp_toolbar_menu_item( __( 'Change Log', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-changelog' ) );50: $this->add_wp_toolbar_menu_item( __( 'Setup Wizard', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-setup-wizard' ) );51: $this->add_wp_toolbar_menu_item( __( 'Speed Optimize Wizard', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-speed-optimize-wizard' ) );257: return new WP_Error( 'not_registerd', __( 'Please <a href='admin.php?page=porto'>register</a> Porto theme to get access to pre-built d365: <p>Please <a href='admin.php?page=porto'>register</a> porto theme to get access to pre-built d400: $('.themes .theme.active .theme-screenshot').after('<div class='notice update-message notice-error notice-alt'><p>Please <a href='admin.php?page=porto' class='button-link'>verify purchase</a> to get updatePossible hard-coded links were found in the file welcome.php.88: <?php printf( esc_html__( 'Before you get started, please be sure to always check out %1$sthis documentation%2$s. We outline all kinds of good information, and provide you with all the details you need to use Porto.', 'porto' ), '<a href='http://www.portotheme.com/wordpress/porto/documentation' target='_blank'>',95: <a target='_blank' href='http://www.portotheme.com/wordpress/porto/documentation#changelog'><?php es92: <?php printf( esc_html__( 'If you are unable to find your answer in our documentation, we encourage you to contact us through %1$ssupport page%2$s with your site CPanel (or FTP) and WordPress admin details. We are very happy to help you and you will get reply from us more faster than you expected.', 'porto' ), '<a href='http://www.portotheme.com/support' target='_blank'>', '</a>' ); ?>Possible hard-coded links were found in the file settings.php.802: 'desc' => sprintf( esc_html__( 'By using this option, you can increase page speed about 4 percent in %1$sGoogle PageSpeed Insights%2$s for both of mobile and desktop.', 'porto' ), '<a href='https://developers.google.com/speed/pagespeed/insights/' target='_blank'>',7610: 'desc' => __( 'Please input animation. Please reference <a href='http://daneden.github.io/animate.css/'>animate.css</a>. ex: fadeIn', 'porto7617: 'desc' => __( 'Please input animation. Please reference <a href='http://daneden.github.io/animate.css/'>animate.css</a>. ex: fadeOut', 'port7610: 'desc' => __( 'Please input animation. Please reference <a href='http://daneden.github.io/animate.css/'>animate.css</a>. ex: fadeIn', 'porto7617: 'desc' => __( 'Please input animation. Please reference <a href='http://daneden.github.io/animate.css/'>animate.css</a>. ex: fadeOut', 'portPossible hard-coded links were found in the file header-builder.php.675: <a href='https://youtu.be/pk2W281QUa8' class='button' target='_blank'><?php esc_htmlPossible hard-coded links were found in the file speed_optimize_wizard.php.505: <input type='checkbox' value='true' name='google_webfont' <?php echo isset( $porto_settings['google-webfont-loader'] ) ? checked( $porto_settings['google-webfont-loader'], true, false ) : ''; ?>> <?php printf( esc_html__( 'Enable %1$sWeb Font Loader%2$s for Google Fonts', 'porto' ), '<a href='https://developers.google.com/fonts/docs/webfont_loader' target='_blank'>',508: <p><?php printf( esc_html__( 'By using this option, you can increase page speed about 4 percent in %1$sGoogle PageSpeed Insights%2$s for both of mobile and desktop.', 'porto' ), '<a href='https://developers.google.com/speed/pagespeed/insights/' target='_blank'>',712: <a href='https://gtmetrix.com/leverage-browser-caching.html' target='_blank'><?php ePossible hard-coded links were found in the file setup_wizard.php.1694: <li class='documentation'><a href='http://www.portotheme.com/wordpress/porto/documentation'><?php esc_html_e( 1695: <li class='woocommerce documentation'><a href='https://docs.woocommerce.com/document/woocommerce-101-video-series/'><?php 1697: <li class='rating'><a href='http://themeforest.net/downloads'><?php esc_html_e( 'Leave an Item Rating',
- This theme does not contain optional file rtl.php.
- This theme does not contain optional file front-page.php.
- This theme does not contain optional file home.php.
- This theme does not contain optional file category.php.
- This theme does not contain optional file tag.php.
- This theme does not contain optional file taxonomy.php.
- This theme does not contain optional file date.php.
- This theme does not contain optional file attachment.php.
- This theme does not contain optional file image.php.
- The theme appears to use include or require : style.php 75: require_once( PORTO_LIB . '/lib/color-lib.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 : style-internal.php 37: require_once( PORTO_LIB . '/lib/color-lib.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 : layout.php 7: require_once( PORTO_FUNCTIONS . '/layout/breadcrumbs.php' );8: require_once( PORTO_FUNCTIONS . '/layout/page-title.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 : woocommerce.php 6: require_once( ABSPATH . 'wp-admin/includes/plugin.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 : content_type.php 2: require_once( PORTO_FUNCTIONS . '/content_type/portfolio_like.php' );3: require_once( PORTO_FUNCTIONS . '/content_type/blog_like.php' );4: require_once( PORTO_FUNCTIONS . '/content_type/meta_values.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 : class-dynamic-style.php 114: require_once( PORTO_DIR . '/style.php' );122: require_once( PORTO_DIR . '/style-internal.php' );138: require_once( PORTO_DIR . '/style-internal.php' );219: require_once( PORTO_ADMIN . '/scssphp/scss.inc.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 : woocommerce-swatches.php 23: require 'classes/class-product-swatches-tab.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 : lazy-load.php 57: require_once( PORTO_LIB . '/lib/color-lib.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 : plugins.php 291: require_once( ABSPATH . 'wp-admin/includes/plugin.php' );298: include_once( WC()->plugin_path() . '/includes/wc-template-functions.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 : parsers.php 82: require_once( ABSPATH . '/wp-admin/includes/file.php' );388: require_once( ABSPATH . '/wp-admin/includes/file.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 : porto-parsers.php 85: require_once( ABSPATH . '/wp-admin/includes/file.php' );393: require_once( ABSPATH . '/wp-admin/includes/file.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 : importer-api.php 64: require_once( ABSPATH . '/wp-admin/includes/file.php' );160: require_once( ABSPATH . '/wp-admin/includes/file.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 : porto-wordpress-importer.php 213: require_once( ABSPATH . 'wp-admin/includes/upgrade.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 : wordpress-importer.php 172: require_once( ABSPATH . 'wp-admin/includes/upgrade.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 : Functions.php 941: $mime = require('mime'); 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_custom_fonts.php 145: // require_once 'System.php'; // WordPress core 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 : framework.php 1547: require_once 'core/enqueue.php';2738: require_once 'core/enqueue.php';2796: require_once 'core/panel.php';3146: 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 : header-builder.php 172: include_once 'classes/simple-notice-control.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 : theme_options.php 9: require_once( PORTO_ADMIN . '/functions.php' );12: require_once( PORTO_ADMIN . '/ReduxCore/framework.php' );15: require_once( PORTO_ADMIN . '/theme_options/settings.php' );17: require_once( PORTO_ADMIN . '/theme_options/save_settings.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.