Maison > Questions et réponses > le corps du texte
P粉3114649352023-09-01 11:03:53
Merci d'avoir suggéré getallheaders(). Avec votre aide, j'ai trouvé deux façons, avec et sans Javascript.
/* Add GPC Banner to WP Header */ function display_gpc_signal_banner() { echo '<section id="headerBannerGpc" class="bg-color"><div class="container detect-gpc-signal py-1 small"><span class="alert- circle"></span> Global Privacy Signal Detected</div></section>'; } add_action('wp_head', 'display_gpc_signal_banner'); // Detect GPC Signal with Javascript function detect_gpc_signal_js() { ?> <script> if(navigator.globalPrivacyControl == true ) { // Add a class to the body tag -- This makes the GPC banner visible document.body.classList.add('gpc-signal-detected'); document.getElementById('headerBannerGpc').style.display = "block"; } else { // Add a class to body tag declaring the GPC signal was not detected document.body.classList.add('no-gpc-signal-detected'); document.getElementById('headerBannerGpc').style.display = "none"; } </script> <? } add_action('wp_footer', 'detect_gpc_signal_js'); // Add a unique class to the body tag when GPC signal is detected function detect_gpc_signal_body_class( $classes ) { $headers = getallheaders(); if($headers['sec-gpc'] == 1) { $classes[] = 'gpc-signal-detected-no-js'; } else { $classes[] = 'no-gpc-signal-detected-no-js'; } return $classes; } add_filter( 'body_class', 'detect_gpc_signal_body_class' );
Mise à jour
La fonction d'origine fonctionnera lorsque HTTP_ sera ajouté à la valeur.
if (isset($_GET['HTTP_SEC_GPC'])) { echo 'GPC signal detected in GET data'; } elseif (isset($_POST['HTTP_SEC_GPC'])) { echo 'GPC signal detected in POST data'; } elseif (isset($_COOKIE['HTTP_SEC_GPC'])) { echo 'GPC signal detected in COOKIE data'; } elseif (isset($_SERVER['HTTP_SEC_GPC'])) { echo 'GPC signal detected in SERVER data'; } else { echo 'No GPC signal detected'; }