e_url = get_option( 'home' ); restore_current_blog(); } $home_parts = get_rocket_parse_url( $home_url ); $home_url = "{$home_parts['scheme']}://{$home_parts['host']}"; $cache_path = rocket_get_constant( 'WP_ROCKET_CACHE_PATH' ) . $home_parts['host']; foreach ( $cache_purge_pages as $page ) { // Check if it contains regex pattern. if ( strstr( $page, '*' ) ) { $matches_files = _rocket_get_recursive_dir_files_by_regex( '#' . $page . '#i' ); foreach ( $matches_files as $file ) { // Convert path to URL. $purge_urls[] = str_replace( $cache_path, untrailingslashit( $home_url ), $file->getPath() ); } continue; } $purge_urls[] = trailingslashit( $home_url ) . ltrim( $page, '/' ); } } // Add the author page. $author_url = trailingslashit( get_author_posts_url( $post->post_author ) ); if ( trailingslashit( site_url() ) !== $author_url && trailingslashit( home_url() ) !== $author_url ) { $purge_urls[] = $author_url; } // Add all parents. $parents = get_post_ancestors( $post_id ); if ( (bool) $parents ) { foreach ( $parents as $parent_id ) { $purge_urls[] = get_permalink( $parent_id ); } } // Remove entries with empty values in array. $purge_urls = array_filter( $purge_urls, 'is_string' ); return array_flip( array_flip( $purge_urls ) ); } } /** * Update cache when a post is updated or commented * * @since 3.0.5 Don't purge for attachment post type * @since 2.8 Only add post type archive if post type is not post * @since 2.6 Purge the page defined in "Posts page" option * @since 2.5.5 Don't cache for auto-draft post status * @since 1.3.2 Add wp_update_comment_count to purge cache when a comment is added/updated/deleted * @since 1.3.0 Compatibility with WPML * @since 1.3.0 Add 2 hooks : before_rocket_clean_post, after_rocket_clean_post * @since 1.3.0 Purge all parents of the post and the author page * @since 1.2.2 Add wp_trash_post and delete_post to purge cache when a post is trashed or deleted * @since 1.1.3 Use clean_post_cache instead of transition_post_status, transition_comment_status and preprocess_comment * @since 1.0 * * @param int $post_id The post ID. * @param WP_Post $post WP_Post object. */ function rocket_clean_post( $post_id, $post = null ) { if ( rocket_is_importing() ) { return; } static $done = []; if ( isset( $done[ $post_id ] ) ) { return false; } $done[ $post_id ] = 1; if ( defined( 'DOING_AUTOSAVE' ) ) { return false; } $purge_urls = []; // Get all post infos if the $post object was not supplied. if ( is_null( $post ) ) { $post = get_post( $post_id ); } // Return if $post is not an object. if ( ! is_object( $post ) ) { return false; } // No purge for specific conditions. if ( 'auto-draft' === $post->post_status || 'draft' === $post->post_status || empty( $post->post_type ) || 'nav_menu_item' === $post->post_type || 'attachment' === $post->post_type ) { return false; } // Don't purge if post's post type is not public or not publicly queryable. $post_type = get_post_type_object( $post->post_type ); if ( ! is_object( $post_type ) || true !== $post_type->public ) { return false; } // Get the post language. $i18n_plugin = rocket_has_i18n(); $lang = ''; if ( 'wpml' === $i18n_plugin && ! rocket_is_plugin_active( 'woocommerce-multilingual/wpml-woocommerce.php' ) ) { // WPML. $lang = $GLOBALS['sitepress']->get_language_for_element( $post_id, 'post_' . get_post_type( $post_id ) ); } elseif ( 'polylang' === $i18n_plugin && function_exists( 'pll_get_post_language' ) ) { // Polylang. $lang = pll_get_post_language( $post_id ); } $purge_urls = rocket_get_purge_urls( $post_id, $post ); /** * Fires before cache files related with the post are deleted * * @since 1.3.0 * * @param WP_Post $post The post object * @param array $purge_urls URLs cache files to remove * @param string $lang The post language */ do_action( 'before_rocket_clean_post', $post, $purge_urls, $lang ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals /** * Filter URLs cache files to remove * * @since 1.0 * * @param array $purge_urls List of URLs cache files to remove */ $purge_urls = apply_filters( 'rocket_post_purge_urls', $purge_urls, $post ); // Purge all files. rocket_clean_files( $purge_urls ); // Never forget to purge homepage and their pagination. rocket_clean_home( $lang ); // Purge home feeds (blog & comments). if ( has_filter( 'rocket_cache_reject_uri', 'wp_rocket_cache_feed' ) !== false ) { rocket_clean_home_feeds(); } /** * URLs cache files to remove after cache files related with the post are deleted * * @param array $purge_urls URLs cache files to remove * @param WP_Post $post The post object * @returns array $purge_urls URLs cache files to remove */ $purge_urls = (array) apply_filters( 'after_rocket_clean_post_urls', $purge_urls, $post ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals /** * Fires after cache files related with the post are deleted * * @since 1.3.0 * * @param WP_Post $post The post object * @param array $purge_urls URLs cache files to remove * @param string $lang The post language */ do_action( 'after_rocket_clean_post', $post, $purge_urls, $lang ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals return true; } add_action( 'wp_trash_post', 'rocket_clean_post' ); add_action( 'delete_post', 'rocket_clean_post' ); add_action( 'clean_post_cache', 'rocket_clean_post' ); add_action( 'wp_update_comment_count', 'rocket_clean_post' ); /** * Purge WP Rocket cache when post status is changed from publish to draft. * * @since 3.4.3 * * @param int $post_id The post ID. * @param array $post_data Array of unslashed post data. */ function rocket_clean_post_cache_on_status_change( $post_id, $post_data ) { if ( rocket_is_importing() ) { return; } if ( 'publish' !== get_post_field( 'post_status', $post_id ) || 'draft' !== $post_data['post_status'] ) { return; } $purge_urls = []; $post = get_post( $post_id ); $post_type = get_post_type_object( $post->post_type ); // Return if $post is not an object or $post_type is not public. if ( ! is_object( $post ) || true !== $post_type->public ) { return; } // Get the post language. $i18n_plugin = rocket_has_i18n(); $lang = false; if ( 'wpml' === $i18n_plugin && ! rocket_is_plugin_active( 'woocommerce-multilingual/wpml-woocommerce.php' ) ) { // WPML. $lang = $GLOBALS['sitepress']->get_language_for_element( $post_id, 'post_' . get_post_type( $post_id ) ); } elseif ( 'polylang' === $i18n_plugin && function_exists( 'pll_get_post_language' ) ) { // Polylang. $lang = pll_get_post_language( $post_id ); } $purge_urls = rocket_get_purge_urls( $post_id, $post ); /** * Filter URLs cache files to remove * * @since 1.0 * * @param array $purge_urls List of URLs cache files to remove */ $purge_urls = apply_filters( 'rocket_post_purge_urls', $purge_urls, $post ); /** * Fires before cache files related with the post are deleted * * @since 1.3.0 * * @param WP_Post $post The post object * @param array $purge_urls URLs cache files to remove * @param string $lang The post language */ do_action( 'before_rocket_clean_post', $post, $purge_urls, $lang ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound // Purge all files. rocket_clean_files( $purge_urls ); // Never forget to purge homepage and their pagination. rocket_clean_home( $lang ); // Purge home feeds (blog & comments). rocket_clean_home_feeds(); /** * URLs cache files to remove after cache files related with the post are deleted * * @param array $purge_urls URLs cache files to remove * @param WP_Post $post The post object * @returns array $purge_urls URLs cache files to remove */ $purge_urls = (array) apply_filters( 'after_rocket_clean_post_urls', $purge_urls, $post ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals /** * Fires after cache files related with the post are deleted * * @since 1.3.0 * * @param WP_Post $post The post object * @param array $purge_urls URLs cache files to remove * @param string $lang The post language */ do_action( 'after_rocket_clean_post', $post, $purge_urls, $lang ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound } add_action( 'pre_post_update', 'rocket_clean_post_cache_on_status_change', 10, 2 ); /** * Add pattern to clean files of connected users * * @since 2.0 * * @param array $urls An array of URLs to clean. * @return array An array of pattern to use for clearing the cache */ function rocket_clean_files_users( $urls ) { $pattern_urls = []; foreach ( $urls as $url ) { $parse_url = get_rocket_parse_url( $url ); $pattern_urls[] = $parse_url['scheme'] . '://' . $parse_url['host'] . '*' . $parse_url['path']; } return $pattern_urls; } add_filter( 'rocket_clean_files', 'rocket_clean_files_users' ); /** * Return all translated version of a post when qTranslate is used. * Use the "rocket_post_purge_urls" filter to insert URLs of traduction post. * * @since 1.3.5 * * @param array $urls An array of URLs to clean. * @return array Updated array of URLs to clean */ function rocket_post_purge_urls_for_qtranslate( $urls ) { global $q_config; if ( ! $urls ) { return []; } $i18n_plugin = rocket_has_i18n(); if ( 'qtranslate' !== $i18n_plugin && 'qtranslate-x' !== $i18n_plugin ) { return $urls; } // Get all languages. $enabled_languages = $q_config['enabled_languages']; // Remove default language. $enabled_languages = array_diff( $enabled_languages, [ $q_config['default_language'] ] ); // Add translate URLs. foreach ( $urls as $url ) { foreach ( $enabled_languages as $lang ) { if ( 'qtranslate' === $i18n_plugin ) { $urls[] = qtrans_convertURL( $url, $lang, true ); } elseif ( 'qtranslate-x' === $i18n_plugin ) { $urls[] = qtranxf_convertURL( $url, $lang, true ); } } } return $urls; } add_filter( 'rocket_post_purge_urls', 'rocket_post_purge_urls_for_qtranslate' ); /** * Purge Cache file System in Admin Bar * * @since 1.3.0 Compatibility with WPML * @since 1.0 */ function do_admin_post_rocket_purge_cache() { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals if ( isset( $_GET['type'], $_GET['_wpnonce'] ) ) { $type_raw = sanitize_key( $_GET['type'] ); $type_array = explode( '-', $type_raw ); $type = $type_array[0]; $id = isset( $type_array[1] ) && is_numeric( $type_array[1] ) ? absint( $type_array[1] ) : 0; $taxonomy = isset( $_GET['taxonomy'] ) ? sanitize_title( wp_unslash( $_GET['taxonomy'] ) ) : ''; $url = ''; if ( ! wp_verify_nonce( sanitize_key( $_GET['_wpnonce'] ), 'purge_cache_' . $type_raw ) ) { wp_nonce_ays( '' ); return; } if ( ! current_user_can( 'rocket_purge_cache' ) ) { return; } switch ( $type ) { // Clear all cache domain. case 'all': set_transient( 'rocket_clear_cache', 'all', HOUR_IN_SECONDS ); // Remove all cache files. $lang = isset( $_GET['lang'] ) && 'all' !== $_GET['lang'] ? sanitize_key( $_GET['lang'] ) : ''; // Remove all cache files. rocket_clean_domain( $lang ); if ( '' === $lang ) { // Remove all minify cache files. rocket_clean_minify(); rocket_clean_cache_busting(); // Generate a new random key for minify cache file. $options = get_option( WP_ROCKET_SLUG ); $options['minify_css_key'] = create_rocket_uniqid(); $options['minify_js_key'] = create_rocket_uniqid(); remove_all_filters( 'update_option_' . WP_ROCKET_SLUG ); update_option( WP_ROCKET_SLUG, $options ); } if ( get_rocket_option( 'manual_preload' ) && ( ! defined( 'WP_ROCKET_DEBUG' ) || ! WP_ROCKET_DEBUG ) ) { $home_url = get_rocket_i18n_home_url( $lang ); /** * Filters the arguments for the preload request being triggered after clearing the cache. * * @since 3.4 * * @param array $args Request arguments. */ $args = (array) apply_filters( 'rocket_preload_after_purge_cache_request_args', [ 'blocking' => false, 'timeout' => 0.01, 'user-agent' => 'WP Rocket/Homepage_Preload_After_Purge_Cache', 'sslverify' => apply_filters( 'https_local_ssl_verify', false ), // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals ] ); wp_safe_remote_get( $home_url, $args ); /** * Fires after automatically preloading the homepage, which occurs after purging the cache. * * @since 3.5 * * @param string $home_url URL to the homepage being preloaded. * @param string $lang The lang of the homepage. * @param array $args Arguments used for the preload request. */ do_action( 'rocket_after_preload_after_purge_cache', $home_url, $lang, $args ); } rocket_dismiss_box( 'rocket_warning_plugin_modification' ); rocket_renew_box( 'preload_notice' ); break; // Clear terms, homepage and other files associated at current post in back-end. case 'post': rocket_clean_post( $id ); set_transient( 'rocket_clear_cache', 'post', HOUR_IN_SECONDS ); break; // Clear a specific term. case 'term': rocket_clean_term( $id, $taxonomy ); set_transient( 'rocket_clear_cache', 'term', HOUR_IN_SECONDS ); break; // Clear a specific user. case 'user': rocket_clean_user( $id ); set_transient( 'rocket_clear_cache', 'user', HOUR_IN_SECONDS ); break; // Clear cache file of the current page in front-end. case 'url': $url = wp_get_referer(); if ( 0 !== strpos( $url, 'http' ) ) { $parse_url = get_rocket_parse_url( untrailingslashit( home_url() ) ); $url = $parse_url['scheme'] . '://' . $parse_url['host'] . $url; } if ( home_url( '/' ) === $url ) { rocket_clean_home(); } else { rocket_clean_files( $url ); } break; default: wp_nonce_ays( '' ); return; } /** * Fires after the cache is cleared. * * @since 3.6 * * @param string $type Type of cache clearance: 'all', 'post', 'term', 'user', 'url'. * @param int $id The post ID, term ID, or user ID being cleared. 0 when $type is not 'post', 'term', or 'user'. * @param string $taxonomy The taxonomy the term being cleared belong to. '' when $type is not 'term'. * @param string $url The URL being cleared. '' when $type is not 'url'. */ do_action( 'rocket_purge_cache', $type, $id, $taxonomy, $url ); wp_safe_redirect( esc_url_raw( wp_get_referer() ) ); rocket_get_constant( 'WP_ROCKET_IS_TESTING', false ) ? wp_die() : exit; } } add_action( 'admin_post_purge_cache', 'do_admin_post_rocket_purge_cache' ); /** * Clean the cache when the current theme is updated. * * @param WP_Upgrader $wp_upgrader WP_Upgrader instance. * @param array $hook_extra Array of bulk item update data. */ function rocket_clean_cache_theme_update( $wp_upgrader, $hook_extra ) { if ( rocket_is_importing() ) { return; } if ( ! isset( $hook_extra['action'] ) || 'update' !== $hook_extra['action'] ) { return; } if ( ! isset( $hook_extra['type'] ) || 'theme' !== $hook_extra['type'] ) { return; } if ( ! isset( $hook_extra['themes'] ) || ! is_array( $hook_extra['themes'] ) ) { return; } $current_theme = wp_get_theme(); $themes = [ $current_theme->get_template(), // Parent theme. $current_theme->get_stylesheet(), // Child theme. ]; // Bail out if the current theme or its parent is not updating. if ( empty( array_intersect( $hook_extra['themes'], $themes ) ) ) { return; } rocket_clean_domain(); } add_action( 'upgrader_process_complete', 'rocket_clean_cache_theme_update', 10, 2 ); // When a theme is updated. /** * Purge WP Rocket cache on Slug / Permalink change. * * @since 3.4.2 * * @param int $post_id The post ID. * @param array $post_data Array of unslashed post data. */ function rocket_clean_post_cache_on_slug_change( $post_id, $post_data ) { if ( rocket_is_importing() ) { return; } // Bail out if the post status is draft, pending or auto-draft. if ( in_array( get_post_field( 'post_status', $post_id ), [ 'draft', 'pending', 'auto-draft', 'trash' ], true ) ) { return; } $post_name = get_post_field( 'post_name', $post_id ); // Bail out if the slug hasn't changed. if ( $post_name === $post_data['post_name'] ) { return; } // Bail out if the old slug has changed, but is empty. if ( empty( $post_name ) ) { return; } rocket_clean_files( get_the_permalink( $post_id ) ); } add_action( 'pre_post_update', 'rocket_clean_post_cache_on_slug_change', PHP_INT_MAX, 2 ); Comment supprimer l'odeur d'urine de chat sur un canapé ?

Comment supprimer l’odeur d’urine de chat sur un canapé en tissu ?

Facebook
Twitter
LinkedIn

Le pipi de chat est l’une des odeurs les plus difficiles à éliminer des canapés. Voici quelques conseils qui peuvent vous aider à vous en débarrasser.

pipi de chat canapé

Les chats sont de merveilleux animaux de compagnie, et ma vie est bien plus riche depuis que j’en possède un. Mais les chats peuvent faire des ravages dans votre maison, en particulier sur vos canapés. Entre les griffures et tous les poils que votre chat peut perdre, la possession d’un animal de compagnie peut être éprouvante pour vos meubles.

Le pire aspect de la possession d’un chat est sans doute le fait que son urine peut laisser une odeur trés (trés) désagréable. Parfois, si votre chat est stressé ou souffre d’une autre affection émotionnelle, il peut faire pipi sur votre canapé. Même si ce n’est pas la faute de votre chat, c’est un problème frustrant que vous devez résoudre si vous voulez continuer à utiliser votre canapé.

Pourquoi l'urine de chat peut-elle être si tenace sur un canapé en tissu ?

Il est important de comprendre pourquoi l’urine de chat peut être si difficile à retirer d’un canapé en tissu avant de plonger dans les solutions. L’urine des chats contient des composés chimiques comme l’ammoniac et l’urée, qui provoquent une odeur forte et persistante. De plus, il peut être difficile d’atteindre tous les résidus et de les éliminer complètement si l’urine pénètre profondément dans le tissu.

Déhoussez votre canapé

Les odeurs d’urine de chat se fixent assez rapidement. La meilleure chose à faire est donc de retirer immédiatement tous les tissus concernés de votre canapé et de les mettre à la machine à laver. Cela signifie que les housses de coussin, les taies d’oreiller et les couvertures doivent être lavées dès que possible.

Si vous laissez le pipi de chat reposer trop longtemps, il peut s’infiltrer dans les coussins de votre canapé et potentiellement ruiner votre meuble préféré. Il est donc nécessaire d’agir rapidement pour garantir l’élimination complète de l’urine de votre chat.


Si les housses de votre canapé ne sont pas déhoussables, mon meilleur conseil est de suivre les autres étapes du mieux possible. S’attaquer à la tache dès que possible est la meilleure chose à faire.

pipi de chat canapé

Localiser l'endroit exacte du pipi de chat sur votre canapé

Si votre chat urine régulièrement sur vos meubles depuis un certain temps, il est possible qu’il y ait plus d’une tache sur votre canapé. Si ces taches ne sont pas détectables en les reniflant, vous pouvez utiliser une lumière noire pour vous aider à repérer d’autres taches. D’après la San Francisco SPCA, l’urine de chat est de couleur jaune-vert.

Si vous n’avez pas de lumière noire ou si les taches sont trop nombreuses, il est peut-être temps de faire appel à un professionnel pour nettoyer votre canapé en profondeur.

Utiliser un nettoyant enzymatique

Lorsqu’il s’agit d’enlever la pisse de chat des canapés, l’objectif est de trouver un nettoyant conçu pour les animaux de compagnie. Selon l’ASPCA, il ne faut pas utiliser de nettoyant à base d’ammoniaque pour nettoyer l’urine de chat, car l’urine de chat (ou toute autre urine) contient de l’ammoniaque. Vous devez plutôt opter pour un nettoyant enzymatique. Un nettoyant enzymatique est un agent nettoyant qui utilise des bactéries pour créer des enzymes qui décomposeront l’odeur  que vous essayez de nettoyer.

Chewy, un détaillant de produits pour animaux de compagnie, recommande de bien imprégner l’urine avec le nettoyant, mais aussi la zone autour de la tache. En outre, vous devez suivre à la fois les instructions du fabricant de votre canapé pour le nettoyer et celles du nettoyant que vous utilisez.

pipi de chat sur canapé

Comment empêcher votre chat de faire pipi sur votre canapé ?

Si votre chat urine de façon répétée sur votre canapé, prenez une seconde et réfléchissez à ce qui pourrait l’en empêcher. Il est très probable que cela soit dû à un facteur de stress qui a été introduit dans leur vie. Les chats sont des animaux sensibles, et des changements qui peuvent nous sembler insignifiants peuvent être turbulents pour votre chat.

Il y a une multitude de raisons pour lesquelles votre chat peut se sentir stressé : vous avez peut-être déménagé récemment, vous avez accueilli un nouvel animal de compagnie ou votre chat est en conflit avec un autre chat de la maison ou du voisinage.

L’ASPCA propose quelques suggestions pour atténuer les facteurs de stress de votre chat. Vous pouvez ajouter des bacs à litière à l’espace de votre chat, créer un espace sûr que seul votre chat peut utiliser, réserver du temps supplémentaire pour jouer avec votre chat et bien d’autres choses encore.

Lorsque ma famille a accueilli notre nouveau chiot il y a plusieurs années, cela a stressé notre chat, qui s’en est pris à nos meubles. Pour lui faciliter la transition, nous avons veillé à ce qu’elle dispose d’un espace à elle, complètement séparé de celui du nouveau chiot.

Nettoyer du pipi de chat avec des produits naturels

Si vous n’avez pas de nettoyant enzymatique, voici quelques méthodes alternatives (mais un peu moins efficaces).

Alternative 1 : Vinaigre et bicarbonate de soude
Absorbez autant d’urine que possible du canapé. Saupoudrez généreusement du bicarbonate de soude sur la tache et laissez agir pendant 5 minutes. Le bicarbonate de soude aidera à désodoriser la tache. Dans un flacon pulvérisateur ou un autre récipient, mélangez à parts égales de l’eau et du vinaigre blanc distillé. Vaporisez ou versez le mélange sur la tache recouverte de bicarbonate de soude et laissez reposer pendant 5 minutes supplémentaires. Épongez ensuite la tache à l’aide d’un chiffon ou d’une serviette en papier pour la sécher.

Alternative 2 : Peroxyde, détergent à vaisselle et bicarbonate de soude
Le peroxyde d’hydrogène peut décomposer certains des produits chimiques contenus dans l’urine grâce à un processus appelé oxydation. Commencez par absorber autant d’urine que possible. Saupoudrez ensuite le bicarbonate de soude sur la tache et laissez agir pendant 5 minutes. Mélangez 1/2 tasse de peroxyde d’hydrogène à 3 % et 1 cuillère à café de détergent à vaisselle anti-graisse dans un bol. Versez le mélange sur une serviette et épongez-la sur la tache. Le détergent se débarrassera des acides gras qui créent des odeurs, et le pétillement du peroxyde éliminera les cristaux qui laissent des taches.

Nettoyage de Togo ligne roset

Urine de chat sur canapé Togo que faire ?

Si votre chat à fait pipi sur votre togo ligne roset le meilleur conseille que nous pouvons vous donner est de faire appel à une entreprise de nettoyage togo. Les togo sont des canapés de grande valeur assez fragile. Utilisez des techniques de grand mère ou des produits pas adaptés pourrait abimer votre canapé togo. Ne prenez pas de risque.