14
Résultats de validation

Porto

Porto

WordPress 6.7.1 theme
14
Ce thème n'est peut être pas libre. Themecheck ne distribue pas de thèmes commerciaux.
Alertes critiques
  1. Failles de sécurité : Utilisation de base64_decode() base64_decode trouvé dans le fichier porto-studio.php. 133: $block_content = base64_decode( $block['content'] );
  2. Code malveillant : Opérations sur système de fichiers fopen trouvé dans le fichier class.redux_helpers.php. 646: // $fp = fopen( $file, 'r' );fread trouvé dans le fichier class.redux_helpers.php. 649: // $file_data = fread( $fp, 8192 );fclose trouvé dans le fichier class.redux_helpers.php. 652: // fclose( $fp );file_get_contents trouvé dans le fichier importer-api.php. 149: $body = @file_get_contents( $source_path );
  3. Menu Admin : Les thèmes doivent utiliser add_theme_page () pour ajouter des pages admin. Fichier framework.php : 1270: // wrappers and need to be appened to using add_submenu_page.1322: 'add_submenu_page',1393: 'add_submenu_page',Fichier framework.php : 1270: // wrappers and need to be appened to using add_submenu_page.1322: 'add_submenu_page',1393: 'add_submenu_page',Fichier framework.php : 1360: 'add_menu_page',Fichier framework.php : 1270: // wrappers and need to be appened to using add_submenu_page.1322: 'add_submenu_page',1393: 'add_submenu_page',Fichier speed_optimize_wizard.php : 94: add_submenu_page( 'porto', esc_html__( 'Speed Optimize Wizard', 'porto' ), Fichier setup_wizard.php : 853: add_submenu_page( 'porto', esc_html__( 'Setup Wizard', 'porto' ), esc_html_Fichier admin.php : 87: $welcome_screen = add_menu_page( 'Porto', 'Porto', 'administrator', 'porto', array( $this, 'wFichier admin.php : 88: $welcome = add_submenu_page( 'porto', __( 'Theme license', 'porto' ), __( 'Theme Licen89: $changelog = add_submenu_page( 'porto', __( 'Change Log', 'porto' ), __( 'Change Log', '91: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'porto' ), __( 'Theme Optio92: $theme_options = add_submenu_page( 'porto', __( 'Advanced Options', 'porto' ), __( 'Advanced94: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'porto' ), __( 'Theme OptioFichier admin.php : 88: $welcome = add_submenu_page( 'porto', __( 'Theme license', 'porto' ), __( 'Theme Licen89: $changelog = add_submenu_page( 'porto', __( 'Change Log', 'porto' ), __( 'Change Log', '91: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'porto' ), __( 'Theme Optio92: $theme_options = add_submenu_page( 'porto', __( 'Advanced Options', 'porto' ), __( 'Advanced94: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'porto' ), __( 'Theme OptioFichier admin.php : 88: $welcome = add_submenu_page( 'porto', __( 'Theme license', 'porto' ), __( 'Theme Licen89: $changelog = add_submenu_page( 'porto', __( 'Change Log', 'porto' ), __( 'Change Log', '91: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'porto' ), __( 'Theme Optio92: $theme_options = add_submenu_page( 'porto', __( 'Advanced Options', 'porto' ), __( 'Advanced94: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'porto' ), __( 'Theme OptioFichier admin.php : 88: $welcome = add_submenu_page( 'porto', __( 'Theme license', 'porto' ), __( 'Theme Licen89: $changelog = add_submenu_page( 'porto', __( 'Change Log', 'porto' ), __( 'Change Log', '91: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'porto' ), __( 'Theme Optio92: $theme_options = add_submenu_page( 'porto', __( 'Advanced Options', 'porto' ), __( 'Advanced94: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'porto' ), __( 'Theme OptioFichier admin.php : 88: $welcome = add_submenu_page( 'porto', __( 'Theme license', 'porto' ), __( 'Theme Licen89: $changelog = add_submenu_page( 'porto', __( 'Change Log', 'porto' ), __( 'Change Log', '91: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'porto' ), __( 'Theme Optio92: $theme_options = add_submenu_page( 'porto', __( 'Advanced Options', 'porto' ), __( 'Advanced94: $theme_options = add_submenu_page( 'porto', __( 'Theme Options', 'porto' ), __( 'Theme Optio
  4. Inclusion de plugin : Présence de fichier zip Les plugins ne sont pas autorisés dans les thèmes. Le fichier zip revslider.zip porto-functionality.zip geodirectory-porto-theme-compatibility-pack.zip digital-agency.zip shop31.zip shop11.zip corporate-hosting.zip shop33.zip shop29.zip elementor-shop8.zip shop25.zip elementor-shop10.zip shop5.zip photography1.zip shop14.zip agency-onepage.zip shop32.zip blog5.zip rtl.zip barber.zip shop27.zip education.zip blog1.zip shop18.zip landing.zip corporate17.zip elementor-shop21.zip corporate5.zip seo.zip corporate12.zip band.zip restaurant.zip coffee.zip shop28.zip shop20.zip corporate20.zip wedding.zip shop17.zip medical.zip corporate7.zip resume.zip corporate16.zip shortcodes.zip elementor-shop18.zip corporate9.zip classic-light.zip event.zip elementor-shop13.zip photography2.zip shop1.zip classic-original.zip shop26.zip shop2.zip shop4.zip portfolio5.zip classic-color.zip elementor-shop14.zip corporate10.zip portfolio1.zip photography3.zip shop30.zip corporate3.zip corporate13.zip elementor-shop19.zip shop7.zip corporate18.zip portfolio2.zip blog2.zip law-firm.zip construction.zip shop3.zip shop22.zip shop6.zip elementor-shop9.zip classic-one-page.zip business-consulting.zip dark.zip elementor-shop17.zip agency-one-page.zip corporate6.zip app-landing.zip elementor-shop15.zip corporate11.zip shop23.zip corporate14.zip shop8.zip hotel.zip blog4.zip shop13.zip portfolio4.zip shop24.zip finance.zip shop15.zip gym.zip shop12.zip real-estate.zip church.zip corporate4.zip architecture.zip shop10.zip classic-video.zip shop21.zip elementor-shop16.zip corporate15.zip blog3.zip elementor-shop12.zip shop9.zip corporate1.zip shop16.zip portfolio3.zip sass.zip classic-video-light.zip corporate8.zip elementor-shop11.zip shop19.zip corporate19.zip insurance.zip corporate2.zip js_composer.zip a été trouvé.
Attention
  1. Script de core désabonné : Désabonnement d'un script de coreAppel à wp_deregister_script dans functions.php. Les thèmes ne doivent appeler wp_deregister_script sur des scripts du core. 681: //wp_deregister_script( 'isotope' );
  2. tags du thème : Présence de tags inconnusTag inconnu woocommerce trouvé dans l'entête du fichier style.css.Tag inconnu corporate trouvé dans l'entête du fichier style.css.Tag inconnu ecommerce trouvé dans l'entête du fichier style.css.Tag inconnu responsive trouvé dans l'entête du fichier style.css.Le tag blue est obsolète, il ne doit pas figurer dans le header de style.css.Le tag black est obsolète, il ne doit pas figurer dans le header de style.css.Le tag green est obsolète, il ne doit pas figurer dans le header de style.css.Le tag white est obsolète, il ne doit pas figurer dans le header de style.css.Le tag light est obsolète, il ne doit pas figurer dans le header de style.css.Le tag dark est obsolète, il ne doit pas figurer dans le header de style.css.Le tag red est obsolète, il ne doit pas figurer dans le header de style.css.Le tag fixed-layout est obsolète, il ne doit pas figurer dans le header de style.css.Le tag responsive-layout est obsolète, il ne doit pas figurer dans le header de style.css.Les thèmes qui utilisent le tag accessibility-ready doivent concoder avec les règles de la revue d'accessibilité.
    Voir https://make.wordpress.org/themes/handbook/review/accessibility/
  3. Text domain : Utilisation incorrecte des fonctions de traduction.Plusieurs text-domain sont utilisés dans le thème. Cela signifie que le thème n'est pas compatible avec les language packs de WordPress. Les domaines trouvés sont porto, js_composer, woocommerce, redux-framework, tgmpa.
  4. Balises courtes PHP : Présence de balises PHP courtesPrésence de balises PHP courtes dans le fichier parsedown.php. "Il est conseillé de ne pas les utiliser car elles ne sont seulement disponibles lors de l'activation de la directive de configuration short_open_tag du php.ini, ou si PHP a été configuré avec l'option --enable-short-tags" (php.net), ce qui n'est pas le cas sur de nombreux serveurs.653: if ( preg_match( '/^\[(.+?)\]:[ ]*<?(\S+?)>?(?:[ ]+['\'(](.+)['\')])?[ ]*$/', $Line['text'], $matches ) ) {
  5. Implémentation de l'internationalisation : Utilisation correcte de ___al(La variable $key a été trouvée dans une fonction de traduction dans le fichier speed_optimize_wizard.php . Les appels de fonctions de traduction ne doivent pas contenir de variables PHP.
  6. Screenshot : Copie d'écranLa taille du screenshot est 880x660px. La taille recommandée est 1200x900, pour prendre en compte les affichages HiDPI. Bien qu'une résolution de 1200x900 soit recommandée, toutes les images au format 4:3 sont acceptables.Mauvaise extension de fichier screenshot ! Le fichier screenshot.png n'est pas un véritable fichier JPG. Le type détecté est : "image/png".
Info
  1. Fichiers optionnels : Présence du fichierde style pour les écritures de droite vers la gauche rtl.cssCe thème ne contient pas le fichier optionnel rtl.php.
  2. Fichiers optionnels : Présence du fichier-template fron-*page.phpCe thème ne contient pas le fichier optionnel front-page.php.
  3. Fichiers optionnels : Présence du fichier-template de page d'accueil home.phpCe thème ne contient pas le fichier optionnel home.php.
  4. Fichiers optionnels : Présence du fichier-template de catégorie category.phpCe thème ne contient pas le fichier optionnel category.php.
  5. Fichiers optionnels : Présence du fichier-template des tags tag.phpCe thème ne contient pas le fichier optionnel tag.php.
  6. Fichiers optionnels : Présence du fichier template de taxinomie taxonomy.phpCe thème ne contient pas le fichier optionnel taxonomy.php.
  7. Fichiers optionnels : Présence de du fichier-template des dates et heures date.phpCe thème ne contient pas le fichier optionnel date.php.
  8. Fichiers optionnels : Présence du fichier-template des archives archive.phpCe thème ne contient pas le fichier optionnel archive.php.
  9. Fichiers optionnels : Présence du fichier-template des pièces jointes attachment.phpCe thème ne contient pas le fichier optionnel attachment.php.
  10. Fichiers optionnels : Présence du fichier-template des images image.phpCe thème ne contient pas le fichier optionnel image.php.
  11. Utilisation d'includes : Utilisation de include ou de de requireLe thème semble utiliser include ou require : extension_custom_fonts.php 145: // require_once 'System.php'; // WordPress core file Si ces fonctions sont utilisées pour inclure des sections séparées d'un modèle à partir de fichiers indépendants, alors get_template_part () doit être utilisé à la place.Le thème semble utiliser include ou 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'; Si ces fonctions sont utilisées pour inclure des sections séparées d'un modèle à partir de fichiers indépendants, alors get_template_part () doit être utilisé à la place.Le thème semble utiliser include ou require : theme_options.php 9: require_once( PORTO_ADMIN . '/functions.php' );12: require_once( PORTO_ADMIN . '/ReduxCore/framework.php' );14: require_once( PORTO_ADMIN . '/theme_options/settings.php' );16: require_once( PORTO_ADMIN . '/theme_options/save_settings.php' ); Si ces fonctions sont utilisées pour inclure des sections séparées d'un modèle à partir de fichiers indépendants, alors get_template_part () doit être utilisé à la place.Le thème semble utiliser include ou require : Functions.php 941: $mime = require('mime'); Si ces fonctions sont utilisées pour inclure des sections séparées d'un modèle à partir de fichiers indépendants, alors get_template_part () doit être utilisé à la place.Le thème semble utiliser include ou require : header-builder.php 174: include_once 'classes/simple-notice-control.php'; Si ces fonctions sont utilisées pour inclure des sections séparées d'un modèle à partir de fichiers indépendants, alors get_template_part () doit être utilisé à la place.Le thème semble utiliser include ou require : importer-api.php 68: require_once( ABSPATH . '/wp-admin/includes/file.php' );165: require_once( ABSPATH . '/wp-admin/includes/file.php' ); Si ces fonctions sont utilisées pour inclure des sections séparées d'un modèle à partir de fichiers indépendants, alors get_template_part () doit être utilisé à la place.Le thème semble utiliser include ou require : parsers.php 82: require_once( ABSPATH . '/wp-admin/includes/file.php' );388: require_once( ABSPATH . '/wp-admin/includes/file.php' ); Si ces fonctions sont utilisées pour inclure des sections séparées d'un modèle à partir de fichiers indépendants, alors get_template_part () doit être utilisé à la place.Le thème semble utiliser include ou require : porto-parsers.php 85: require_once( ABSPATH . '/wp-admin/includes/file.php' );393: require_once( ABSPATH . '/wp-admin/includes/file.php' ); Si ces fonctions sont utilisées pour inclure des sections séparées d'un modèle à partir de fichiers indépendants, alors get_template_part () doit être utilisé à la place.Le thème semble utiliser include ou require : wordpress-importer.php 174: require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); Si ces fonctions sont utilisées pour inclure des sections séparées d'un modèle à partir de fichiers indépendants, alors get_template_part () doit être utilisé à la place.Le thème semble utiliser include ou require : porto-wordpress-importer.php 215: require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); Si ces fonctions sont utilisées pour inclure des sections séparées d'un modèle à partir de fichiers indépendants, alors get_template_part () doit être utilisé à la place.Le thème semble utiliser include ou require : plugins.php 300: require_once( ABSPATH . 'wp-admin/includes/plugin.php' );307: include_once( WC()->plugin_path() . '/includes/wc-template-functions.php' ) Si ces fonctions sont utilisées pour inclure des sections séparées d'un modèle à partir de fichiers indépendants, alors get_template_part () doit être utilisé à la place.Le thème semble utiliser include ou require : lazy-load.php 57: require_once( PORTO_LIB . '/lib/color-lib.php' ); Si ces fonctions sont utilisées pour inclure des sections séparées d'un modèle à partir de fichiers indépendants, alors get_template_part () doit être utilisé à la place.Le thème semble utiliser include ou require : woocommerce-swatches.php 23: require 'classes/class-product-swatches-tab.php'; Si ces fonctions sont utilisées pour inclure des sections séparées d'un modèle à partir de fichiers indépendants, alors get_template_part () doit être utilisé à la place.Le thème semble utiliser include ou require : layout.php 7: require_once( PORTO_FUNCTIONS . '/layout/breadcrumbs.php' );8: require_once( PORTO_FUNCTIONS . '/layout/page-title.php' ); Si ces fonctions sont utilisées pour inclure des sections séparées d'un modèle à partir de fichiers indépendants, alors get_template_part () doit être utilisé à la place.Le thème semble utiliser include ou 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' ); Si ces fonctions sont utilisées pour inclure des sections séparées d'un modèle à partir de fichiers indépendants, alors get_template_part () doit être utilisé à la place.Le thème semble utiliser include ou require : class-dynamic-style.php 121: require_once( PORTO_DIR . '/style.php' );129: require_once( PORTO_DIR . '/style-internal.php' );145: require_once( PORTO_DIR . '/style-internal.php' );245: require_once( PORTO_ADMIN . '/scssphp/scss.inc.php' ); Si ces fonctions sont utilisées pour inclure des sections séparées d'un modèle à partir de fichiers indépendants, alors get_template_part () doit être utilisé à la place.Le thème semble utiliser include ou require : woocommerce.php 9: require_once( ABSPATH . 'wp-admin/includes/plugin.php' ); Si ces fonctions sont utilisées pour inclure des sections séparées d'un modèle à partir de fichiers indépendants, alors get_template_part () doit être utilisé à la place.Le thème semble utiliser include ou require : style-internal.php 34: require_once( PORTO_LIB . '/lib/color-lib.php' ); Si ces fonctions sont utilisées pour inclure des sections séparées d'un modèle à partir de fichiers indépendants, alors get_template_part () doit être utilisé à la place.Le thème semble utiliser include ou require : style.php 75: require_once( PORTO_LIB . '/lib/color-lib.php' ); Si ces fonctions sont utilisées pour inclure des sections séparées d'un modèle à partir de fichiers indépendants, alors get_template_part () doit être utilisé à la place.
Other checked themes