0
Validation results

Porto

Porto

WordPress 6.5.2 theme
0
This theme seems to be proprietary. Themecheck doesn't distribute commercial themes.
Critical alerts
  1. Security breaches : Modification of PHP server settings Found ini_set in file Parser.php. 90: @ini_set( 'mbstring.internal_encoding', 'ascii' );177: @ini_set( 'precision', 16 );212: @ini_set( 'precision', $precision );218: @ini_set( 'mbstring.internal_encoding', $this->mb_internal_encoding );
  2. Security breaches : Use of base64_decode() Found base64_decode in file vc_section.php. 170: $output .= rawurldecode( base64_decode( porto_strip_script_tags( $top_divider_custom ) ) );206: $output .= rawurldecode( base64_decode( porto_strip_script_tags( $bottom_divider_custom ) ) );Found base64_decode in file porto-studio.php. 188: $block_content = base64_decode( $block['content'] );
  3. Security breaches : Use of base64_encode() Found base64_encode in file Functions.php.
     $buf = $useBase64 ? base64_encode( $buf ) : rawurlencode( $buf );
     $returner = ''data:image/svg+xml;base64,'.base64_encode( $returner ).''';
    Found base64_encode in file wpb-elements.php.
     'value' => base64_encode( '' ),
     'value' => base64_encode( '' ),
  4. Malware : Operations on file system 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 Cache.php 107: $c = file_get_contents($fileCache);file_put_contents was found in the file Cache.php 135: file_put_contents($fileCache, $c);file_put_contents was found in the file SourceMapGenerator.php 146: if (file_put_contents($file, $content) === false) {file_get_contents was found in the file SourceMapGenerator.php 225: $content[] = file_get_contents($sourceFile);fopen was found in the file Compiler.php 182: $this->stderr = fopen('php://stderr', 'w');fwrite was found in the file Compiler.php 2912: fwrite($this->stderr, 'File $fname on line $line DEBUG: $value\n');2922: fwrite($this->stderr, 'File $fname on line $line WARN: $value\n');fwrite was found in the file Compiler.php 2912: fwrite($this->stderr, 'File $fname on line $line DEBUG: $value\n');2922: fwrite($this->stderr, 'File $fname on line $line WARN: $value\n');file_get_contents was found in the file Compiler.php 4669: $code = file_get_contents($path);file_put_contents was found in the file lessc.inc.php 176: return file_put_contents( $outFname, $out );file_get_contents was found in the file Import.php 170: $contents = new Less_Tree_Anonymous( file_get_contents( $full_path ), 0, array(), true );file_put_contents was found in the file Cache.php 71: file_put_contents( $vars_file, $lessvars );113: file_put_contents( $list_file, $cache );116: file_put_contents( $output_file, $compiled );file_put_contents was found in the file Cache.php 71: file_put_contents( $vars_file, $lessvars );113: file_put_contents( $list_file, $cache );116: file_put_contents( $output_file, $compiled );file_put_contents was found in the file Cache.php 71: file_put_contents( $vars_file, $lessvars );113: file_put_contents( $list_file, $cache );116: file_put_contents( $output_file, $compiled );file_get_contents was found in the file Cache.php 281: $list = explode( '\n', file_get_contents( $list_file ) );file_get_contents was found in the file Parser.php 54: $this->input = file_get_contents( $this->currentFile['filename'] );file_get_contents was found in the file import.php 69: $contents = new Less_Tree_Anonymous( file_get_contents($full_path), 0, array(), true );file_put_contents was found in the file Generator.php 151: if ( file_put_contents( $file, $content ) === false ) {file_get_contents was found in the file Generator.php 266: $content[] = file_get_contents( $sourceFile );file_get_contents was found in the file Functions.php 907: $buf = @file_get_contents( $filePath );file_get_contents was found in the file Parser.php 618: $cache = unserialize( file_get_contents( $cache_file ) );681: $this->input = file_get_contents( $file_path );file_put_contents was found in the file Parser.php 657: file_put_contents( $cache_file, serialize( $rules ) );660: file_put_contents( $cache_file, '<?php return '.self::ArgString( $rules ).'664: file_put_contents( $cache_file, '<?php return '.var_export( $rules, true ).file_put_contents was found in the file Parser.php 657: file_put_contents( $cache_file, serialize( $rules ) );660: file_put_contents( $cache_file, '<?php return '.self::ArgString( $rules ).'664: file_put_contents( $cache_file, '<?php return '.var_export( $rules, true ).file_put_contents was found in the file Parser.php 657: file_put_contents( $cache_file, serialize( $rules ) );660: file_put_contents( $cache_file, '<?php return '.self::ArgString( $rules ).'664: file_put_contents( $cache_file, '<?php return '.var_export( $rules, true ).file_get_contents was found in the file Parser.php 618: $cache = unserialize( file_get_contents( $cache_file ) );681: $this->input = file_get_contents( $file_path );
  5. Admin menu : Themes should use add_theme_page() for adding admin pages. File framework.php : 1275: // wrappers and need to be appened to using add_submenu_page.1327: 'add_submenu_page',1398: 'add_submenu_page',File framework.php : 1275: // wrappers and need to be appened to using add_submenu_page.1327: 'add_submenu_page',1398: 'add_submenu_page',File framework.php : 1365: 'add_menu_page',File framework.php : 1275: // wrappers and need to be appened to using add_submenu_page.1327: 'add_submenu_page',1398: 'add_submenu_page',File speed_optimize_wizard.php : 93: add_submenu_page( 'porto', esc_html__( 'Speed Optimize Wizard', 'porto' ), File setup_wizard.php : 1107: add_submenu_page( 'porto', esc_html__( 'Setup Wizard', 'porto' ), esc_html_File admin.php : 95: $welcome_screen = add_menu_page( 'Porto', 'Porto', 'administrator', 'porto', array( $this, 'wFile admin.php : 96: $welcome = add_submenu_page( 'porto', __( 'Dashboard', 'porto' ), __( 'Dashboard', 'po98: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'porto' ), __( 'Theme Optio99: $theme_options = add_submenu_page( 'porto', __( 'Advanced Options', 'porto' ), __( 'Advanced101: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'porto' ), __( 'Theme OptioFile admin.php : 96: $welcome = add_submenu_page( 'porto', __( 'Dashboard', 'porto' ), __( 'Dashboard', 'po98: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'porto' ), __( 'Theme Optio99: $theme_options = add_submenu_page( 'porto', __( 'Advanced Options', 'porto' ), __( 'Advanced101: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'porto' ), __( 'Theme OptioFile admin.php : 96: $welcome = add_submenu_page( 'porto', __( 'Dashboard', 'porto' ), __( 'Dashboard', 'po98: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'porto' ), __( 'Theme Optio99: $theme_options = add_submenu_page( 'porto', __( 'Advanced Options', 'porto' ), __( 'Advanced101: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'porto' ), __( 'Theme OptioFile admin.php : 96: $welcome = add_submenu_page( 'porto', __( 'Dashboard', 'porto' ), __( 'Dashboard', 'po98: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'porto' ), __( 'Theme Optio99: $theme_options = add_submenu_page( 'porto', __( 'Advanced Options', 'porto' ), __( 'Advanced101: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'porto' ), __( 'Theme OptioFile class-tools.php : 27: add_submenu_page( 'porto', __( 'Tools', 'porto' ), __( 'Tools', 'porto' ), File class-version-control.php : 57: add_submenu_page( 'porto', __( 'Version Control', 'porto' ), __( 'Version CFile class-page-layouts.php : 184: add_submenu_page( 'porto', __( 'Page Layouts', 'porto' ), __( 'Page Layouts
  6. Included plugins : Zip file found Plugins are not allowed in themes. The zip file found was geodirectory-porto-theme-compatibility-pack.zip.
Warning
  1. core scripts deregistered : Core scripts deregistrationFound wp_deregister_script in functions.php. Themes must not deregister core scripts. 886: //wp_deregister_script( 'isotope' );1195: wp_deregister_script( 'dokan-chart' );
  2. theme tags : Presence of bad theme tagsFound wrong tag woocommerce in style.css header.Found wrong tag business in style.css header.Found wrong tag corporate 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 wrong tag block-styles in style.css header.Found wrong tag custom-logo in style.css header.Found wrong tag template-editing in style.css header.Found wrong tag wide-blocks in style.css header.
  3. theme tags : Too many subject tags
  4. 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 porto, js_composer, woocommerce, yith-woocommerce-wishlist, yith-woocommerce-compare, redux-framework, tgmpa.
  5. PHP short tags : Presence of PHP short tagsPHP 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 ) ) {
  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. I18N implementation : Proper use of ___all(Possible variable $key found in translation function in speed_optimize_wizard.php. Translation function calls should not contain PHP variables.
  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 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 speed_optimize_wizard.php.489: <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' re492: <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' re929: <?php printf( esc_html__( 'This improves page load time as the browser caches preloaded resources so they are available immediately when needed. By using this option, you can increase page speed about 1 ~ 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' re955: <?php printf( esc_html__( 'Choosing 'Swap' for font-display will ensure text remains visible during webfont load and this will improve page speed score 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'>',492: <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' re929: <?php printf( esc_html__( 'This improves page load time as the browser caches preloaded resources so they are available immediately when needed. By using this option, you can increase page speed about 1 ~ 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' re955: <?php printf( esc_html__( 'Choosing 'Swap' for font-display will ensure text remains visible during webfont load and this will improve page speed score 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'>',492: <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' re929: <?php printf( esc_html__( 'This improves page load time as the browser caches preloaded resources so they are available immediately when needed. By using this option, you can increase page speed about 1 ~ 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' re955: <?php printf( esc_html__( 'Choosing 'Swap' for font-display will ensure text remains visible during webfont load and this will improve page speed score 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'>',1063: <a href='https://gtmetrix.com/leverage-browser-caching.html' target='_blank' rel='noPossible hard-coded links were found in the file setup_wizard.php.1913: <p><?php printf( esc_html__( '%1$sHubSpot%2$s\'s official WordPress plugin allows you to add forms, popups, and live chat to your website and integrate with the best WordPress CRM.', 'porto' ), '<a href='https://www.hubspot.com/'>', '</a>' ); ?></p>2137: <p><em><i class='fas fa-info-circle' style='font-size: 1.2em'></i></em> More details about item support can be found in the ThemeForest <a href='http://themeforest.net/page/item_support_policy' target='_blank' rel='noope2159: <li class='documentation'><i class='status fas fa-book'></i> <a href='http://www.portotheme.com/wordpress/porto/documentation'><?php esc_html_e( 2160: <li class='woocommerce documentation'><i class='status fas fa-book'></i> <a href='https://docs.woocommerce.com/document/woocommerce-101-video-series/'><?php 2162: <li class='rating'><i class='status fas fa-star'></i> <a href='http://themeforest.net/downloads'><?php esc_html_e( 'Leave an Item Rating',2166: <p><em><i class='fas fa-info-circle' style='font-size: 1.2em'></i></em> Please come back and <a href='http://themeforest.net/downloads' target='_blank' rel='noopener noreferrer'2162: <li class='rating'><i class='status fas fa-star'></i> <a href='http://themeforest.net/downloads'><?php esc_html_e( 'Leave an Item Rating',2166: <p><em><i class='fas fa-info-circle' style='font-size: 1.2em'></i></em> Please come back and <a href='http://themeforest.net/downloads' target='_blank' rel='noopener noreferrer'Possible hard-coded links were found in the file settings.php.996: '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' re1355: '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' re996: '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' re1355: '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' re8094: __( 'Please install the <a href='https://www.sliderrevolution.com/' target='_blank'>Slider Revolution</a>.',12022: 'desc' => __( 'Please input animation. Please reference <a href='http://daneden.github.io/animate.css/'>animate.css</a>. ex: fadeIn', 'porto12030: 'desc' => __( 'Please input animation. Please reference <a href='http://daneden.github.io/animate.css/'>animate.css</a>. ex: fadeOut', 'port12022: 'desc' => __( 'Please input animation. Please reference <a href='http://daneden.github.io/animate.css/'>animate.css</a>. ex: fadeIn', 'porto12030: '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 admin.php.42: $this->add_wp_toolbar_menu_item( $porto_parent_menu_title, false, admin_url( 'admin.php?page=porto' ), array( 'class' => 'porto-menu' ), 'porto' );43: $this->add_wp_toolbar_menu_item( __( 'Dashboard', 'porto' ), 'porto', admin_url( 'admin.php?page=porto' ), array(), 'porto-dashboard' );44: $this->add_wp_toolbar_menu_item( __( 'Page Layouts', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-page-layouts' ) );52: $this->add_wp_toolbar_menu_item( __( 'Setup Wizard', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-setup-wizard' ) );53: $this->add_wp_toolbar_menu_item( __( 'Speed Optimize Wizard', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-speed-optimize-wizard' ) );55: $this->add_wp_toolbar_menu_item( __( 'Version Control', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-version-control' ) );57: $this->add_wp_toolbar_menu_item( __( 'Tools', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-tools' ) );263: return new WP_Error( 'not_registerd', __( 'Please <a href='admin.php?page=porto'>register</a> Porto theme to get access to pre-built d384: <p><?php echo sprintf( esc_html__( 'Please %1$sregister%2$s Porto theme to get access to pre-built demo websites and auto updates.', 'porto' ), '<a href='admin.php?page=porto'>', '</a>' ); ?></p>419: $('.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 update42: $this->add_wp_toolbar_menu_item( $porto_parent_menu_title, false, admin_url( 'admin.php?page=porto' ), array( 'class' => 'porto-menu' ), 'porto' );43: $this->add_wp_toolbar_menu_item( __( 'Dashboard', 'porto' ), 'porto', admin_url( 'admin.php?page=porto' ), array(), 'porto-dashboard' );44: $this->add_wp_toolbar_menu_item( __( 'Page Layouts', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-page-layouts' ) );52: $this->add_wp_toolbar_menu_item( __( 'Setup Wizard', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-setup-wizard' ) );53: $this->add_wp_toolbar_menu_item( __( 'Speed Optimize Wizard', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-speed-optimize-wizard' ) );55: $this->add_wp_toolbar_menu_item( __( 'Version Control', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-version-control' ) );57: $this->add_wp_toolbar_menu_item( __( 'Tools', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-tools' ) );263: return new WP_Error( 'not_registerd', __( 'Please <a href='admin.php?page=porto'>register</a> Porto theme to get access to pre-built d384: <p><?php echo sprintf( esc_html__( 'Please %1$sregister%2$s Porto theme to get access to pre-built demo websites and auto updates.', 'porto' ), '<a href='admin.php?page=porto'>', '</a>' ); ?></p>419: $('.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 update42: $this->add_wp_toolbar_menu_item( $porto_parent_menu_title, false, admin_url( 'admin.php?page=porto' ), array( 'class' => 'porto-menu' ), 'porto' );43: $this->add_wp_toolbar_menu_item( __( 'Dashboard', 'porto' ), 'porto', admin_url( 'admin.php?page=porto' ), array(), 'porto-dashboard' );44: $this->add_wp_toolbar_menu_item( __( 'Page Layouts', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-page-layouts' ) );52: $this->add_wp_toolbar_menu_item( __( 'Setup Wizard', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-setup-wizard' ) );53: $this->add_wp_toolbar_menu_item( __( 'Speed Optimize Wizard', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-speed-optimize-wizard' ) );55: $this->add_wp_toolbar_menu_item( __( 'Version Control', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-version-control' ) );57: $this->add_wp_toolbar_menu_item( __( 'Tools', 'porto' ), 'porto', admin_url( 'admin.php?page=porto-tools' ) );263: return new WP_Error( 'not_registerd', __( 'Please <a href='admin.php?page=porto'>register</a> Porto theme to get access to pre-built d384: <p><?php echo sprintf( esc_html__( 'Please %1$sregister%2$s Porto theme to get access to pre-built demo websites and auto updates.', 'porto' ), '<a href='admin.php?page=porto'>', '</a>' ); ?></p>419: $('.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 header-builder.php.687: <a href='https://youtu.be/pk2W281QUa8' class='button' target='_blank' rel='noopener Possible hard-coded links were found in the file welcome.php.79: <?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' re83: <?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' rel='noopener noreferrer86: <a href='https://www.portotheme.com/wordpress/porto/documentation/changelog/' targetPossible 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</span
  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 category template file category.phpThis theme does not contain optional file category.php.
  6. Optional files : Presence of tag template file tag.phpThis theme does not contain optional file tag.php.
  7. Optional files : Presence of term template file taxonomy.phpThis theme does not contain optional file taxonomy.php.
  8. Optional files : Presence of date/time template file date.phpThis theme does not contain optional file date.php.
  9. Optional files : Presence of archive template file archive.phpThis theme does not contain optional file archive.php.
  10. Optional files : Presence of attachment template file attachment.phpThis theme does not contain optional file attachment.php.
  11. Optional files : Presence of image template file image.phpThis theme does not contain optional file image.php.
  12. Use of includes : Use of include or requireThe theme appears to use include or require : style-editor.php 34: 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 : 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 1552: require_once 'core/enqueue.php';2743: require_once 'core/enqueue.php';2801: require_once 'core/panel.php';3151: 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 : theme_options.php 9: require_once( PORTO_ADMIN . '/functions.php' );40: require_once( PORTO_ADMIN . '/ReduxCore/framework.php' );47: require_once( PORTO_ADMIN . '/theme_options/settings.php' );48: 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.The theme appears to use include or require : speed_optimize_wizard.php 603: require_once( PORTO_ADMIN . '/ReduxCore/framework.php' );849: require_once( PORTO_ADMIN . '/ReduxCore/framework.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-porto-demo-history.php 262: require_once( PORTO_ADMIN . '/ReduxCore/framework.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 : setup_wizard.php 1048: require_once 'class-porto-demo-history.php';1957: require_once( PORTO_ADMIN . '/ReduxCore/framework.php' );2619: require_once( PORTO_ADMIN . '/ReduxCore/framework.php' );3079: require_once( PORTO_ADMIN . '/ReduxCore/framework.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 : Parser.php 399: if ($this->literal('@include', 8) && 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 886: $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 : header-builder.php 167: 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 : class-version-control.php 166: 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 83: require_once( ABSPATH . '/wp-admin/includes/file.php' );187: 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 : 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 : wordpress-importer.php 174: 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 : porto-wordpress-importer.php 215: 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 : plugins.php 403: require_once( ABSPATH . 'wp-admin/includes/plugin.php' );410: 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 : lazy-load.php 61: 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 : 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 : class-performance.php 267: require_once( PORTO_ADMIN . '/functions.php' );269: require_once( PORTO_ADMIN . '/ReduxCore/framework.php' );271: require_once( PORTO_ADMIN . '/theme_options/settings.php' );384: 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 : layout.php 7: require_once( PORTO_FUNCTIONS . '/layout/header.php' );8: require_once( PORTO_FUNCTIONS . '/layout/breadcrumbs.php' );9: require_once( PORTO_FUNCTIONS . '/layout/page-title.php' );10: require_once( PORTO_FUNCTIONS . '/layout/footer.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 144: require_once( PORTO_DIR . '/style.php' );152: require_once( PORTO_DIR . '/style-internal.php' );168: require_once( PORTO_DIR . '/style-internal.php' );304: 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.php 9: 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 : style-internal.php 38: 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.php 76: 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.
Other checked themes