2016-02-04 3 views
0

Я пытаюсь удалить скрипт statcounter (который у меня есть в нижнем колонтитуле) с одной страницы только на сайте wordpress, поэтому он не будет считать эту страницу и, в частности, из-за ее скрытого элемента.удалить скрипт statcounter только с одной страницы

Я заглянул в плагин php, но он не регистрирует и не запускает никаких скриптов, поэтому я не знаю, какую функцию использовать. Ниже приведен фрагмент из его PHP:

$sc_position = get_option(key_sc_position); 
if ($sc_position=="header") { 
    add_action('wp_head', 'add_statcounter'); 
} else { 
    add_action('wp_footer', 'add_statcounter'); 
} 



// The guts of the StatCounter script 
function add_statcounter() { 
    global $user_level; 
    $sc_project = get_option(key_sc_project); 
    $sc_security = get_option(key_sc_security); 
    $sc_invisible = 0; 
    $sc_invisible = get_option('sc_invisible'); 
    if (
     ($sc_project > 0) 
    ) { 
?> 
    <!-- Start of StatCounter Code --> 
    <script> 
    <!-- 
     var sc_project=<?php echo $sc_project; ?>; 
     var sc_security="<?php echo $sc_security; ?>"; 
<?php 
if($sc_invisible==1) { 
    echo "  var sc_invisible=1;\n"; 
} 

define('HTTPS', isset($_SERVER['HTTPS']) && filter_var($_SERVER['HTTPS'], FILTER_VALIDATE_BOOLEAN)); 
$protocol = defined('HTTPS') ? "https:" : "http:"; 

?> 
     var scJsHost = (("https:" == document.location.protocol) ? 
     "https://secure." : "http://www."); 
    //--> 
document.write("<sc"+"ript src='" +scJsHost +"statcounter.com/counter/counter.js'></"+"script>"); 
</script> 

    <!-- End of StatCounter Code --> 
<?php 
    } 
} 

Я попытался с помощью:

function no_stat_counter_scripts() { 
    if(!is_page(XXX)){ 
     global $user_level; 
remove_action('wp_head', array($user_level, 'add_statcounter')); 
remove_action('wp_footer', array($user_level, 'add_statcounter')); 
} 
} 
add_action('wp_footer', 'no_stat_counter_scripts'); 
add_action('wp_head', 'no_stat_counter_scripts'); 

, но это не работает, кто имеет представление о том, как я могу выполнить это?

ответ

0

так что вы видите это:

$sc_position = get_option(key_sc_position); 
if ($sc_position=="header") { 
    add_action('wp_head', 'add_statcounter'); 
} else { 
    add_action('wp_footer', 'add_statcounter'); 
} 

Мы не хотим, чтобы это сделать, если это какая-то страница ...

Для того, чтобы получить эту определенную проверку страницы на это

How to get the current page name in WordPress?

if ($pagename != "thepageyoudontwanttohavestatson") 
{ 
if ($sc_position=="header") { 
    add_action('wp_head', 'add_statcounter'); 
} else { 
    add_action('wp_footer', 'add_statcounter'); 
} 
} 

Значение, если мой текущий ИмяСтраницы не равна странице Я хочу, чтобы игнорировать, а затем добавить счетчики ... и избавиться от этого кода вы сделали, насколько

add_action('wp_footer', 'no_stat_counter_scripts'); 
add_action('wp_head', 'no_stat_counter_scripts'); 
0

Try:

<?php 
function add_statcounter() { 
if(is_page('id or slug of page to exclude')) return; 
    global $user_level; 
    $sc_project = get_option(key_sc_project); 
    $sc_security = get_option(key_sc_security); 
    $sc_invisible = 0; 
    $sc_invisible = get_option('sc_invisible'); 
    if (($sc_project > 0)) { 
    ?> 
    <!-- Start of StatCounter Code --> 
    <script> 
    <!-- 
    var sc_project=<?php echo $sc_project; ?>; 
    var sc_security="<?php echo $sc_security; ?>"; 
    <?php 
    if($sc_invisible==1) { 
     echo "var sc_invisible=1;\n"; 
    } 

    define('HTTPS', isset($_SERVER['HTTPS']) && filter_var($_SERVER['HTTPS'], FILTER_VALIDATE_BOOLEAN)); 
    $protocol = defined('HTTPS') ? "https:" : "http:"; 

    ?> 
    var scJsHost = (("https:" == document.location.protocol) ? 
    "https://secure." : "http://www."); 
    //--> 
    document.write("<sc"+"ript src='" +scJsHost +"statcounter.com/counter/counter.js'></"+"script>"); 
    </script> 
    <!-- End of StatCounter Code --> 
    <?php 
    } 
}