(contenu, header, backgrounds, etc.) et dans les liens preload d'image dans le
. L'URL de Thumbor, les filtres, la clé secrète et un éventuel chemin local sont configurables. Les images sont redimensionnées si une taille est spécifiée dans le nom du fichier ou dans les attributs HTML. La transformation est désactivée dans certains cas (ex. Optimize More) pour éviter des erreurs getimagesize(). Le favicon, les scripts et les images en dehors du (sauf preload) ne sont pas modifiés. Version: 1.7 Author: MrRaph_ */ if ( ! defined('ABSPATH') ) { exit; // Sécurisation } /** * Récupère les options du plugin avec des valeurs par défaut. */ function wp_thumbor_get_options() { $defaults = array( 'thumbor_base_url' => '', 'thumbor_filters' => '', 'thumbor_secret_key' => '', 'thumbor_local_path' => '', 'thumbor_debug' => false, // Option ajoutée pour le mode debug ); $options = get_option('wp_thumbor_options', $defaults); return wp_parse_args($options, $defaults); } /** * Fonction de log pour le mode debug. * Les messages sont enregistrés dans un fichier situé dans le répertoire wp-content. */ function wp_thumbor_log($message) { $options = wp_thumbor_get_options(); if ( ! empty($options['thumbor_debug']) ) { // Définir le chemin du fichier de log $log_file = WP_CONTENT_DIR . '/wp-thumbor.log'; // Préfixer le message avec la date et l'heure $date = date('Y-m-d H:i:s'); $log_message = "[$date] WP Thumbor Debug: $message" . PHP_EOL; // Ajoute le message à la fin du fichier file_put_contents($log_file, $log_message, FILE_APPEND); } } /** * Vérifie si la transformation Thumbor doit être désactivée pour l'appelant. * Par exemple, si l'appel provient du plugin Optimize More. * * @return bool */ function wp_thumbor_should_skip_transform() { $trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 10); foreach ( $trace as $frame ) { if ( isset($frame['file']) && stripos($frame['file'], 'optimize-more') !== false ) { return true; } } return false; } /** * Ajoute un menu de réglages dans l'administration de WordPress. */ function wp_thumbor_admin_menu() { add_options_page( 'Réglages WP Thumbor Integration', 'WP Thumbor Integration', 'manage_options', 'wp-thumbor-integration', 'wp_thumbor_settings_page' ); } add_action('admin_menu', 'wp_thumbor_admin_menu'); /** * Affiche la page de réglages du plugin dans l'administration. */ function wp_thumbor_settings_page() { if ( ! current_user_can('manage_options') ) { wp_die(__('Vous n\'avez pas l\'autorisation d\'accéder à cette page.')); } if ( isset($_POST['wp_thumbor_nonce']) && wp_verify_nonce($_POST['wp_thumbor_nonce'], 'wp_thumbor_save_settings') ) { $options = array(); $options['thumbor_base_url'] = isset($_POST['thumbor_base_url']) ? esc_url_raw(trim($_POST['thumbor_base_url'])) : ''; $options['thumbor_filters'] = isset($_POST['thumbor_filters']) ? sanitize_text_field(trim($_POST['thumbor_filters'])) : ''; $options['thumbor_secret_key'] = isset($_POST['thumbor_secret_key']) ? sanitize_text_field(trim($_POST['thumbor_secret_key'])) : ''; $options['thumbor_local_path'] = isset($_POST['thumbor_local_path']) ? sanitize_text_field(trim($_POST['thumbor_local_path'])) : ''; $options['thumbor_debug'] = isset($_POST['thumbor_debug']) ? true : false; update_option('wp_thumbor_options', $options); echo 'Les paramètres ont été mis à jour.