禁用在特定Wordpress页面上执行的脚本

时间:2017-10-24 08:31:00

标签: javascript php wordpress

我想在我的整个WP网站上运行一个脚本(已经在运行),除了在一个特定页面上,引用所在的页面。

有效的脚本:

<script type="text/javascript">
var d = new Date();
var day = d.getDay();

if (day == 0) {
window.location="https://example.com/mypage";
}

</script>

我尝试将以下代码放入我的functions.php:

function my_custom_script() {

if ( is_page( 'mypage' ) ) {  } 

else {

var d = new Date();
var day = d.getDay();

if (day == 0) {
window.location="https://example.com/mypage";
}

}
}
add_action( 'wp_enqueue_scripts', 'my_custom_script' );

我不希望脚本在重定向页面上运行的原因是因为该页面会遇到无限循环。

任何人都可以告诉我该怎么做才能让它发挥作用吗?

3 个答案:

答案 0 :(得分:0)

正如我在评论中已经说过的那样,你不能将javascript代码放在PHP函数中,而应该像使用标题函数一样使用PHP重定向:

function my_custom_script() {
    $day = date('d');
    if (0 === $day) {
        header('Location: http://example.org/');
        exit();
    }
}

add_action('wp_enqueue_scripts', 'my_custom_script');

注意:由于我从未真正使用WordPress(感谢上帝),我没有测试过代码。我刚刚调整了你的逻辑:)

答案 1 :(得分:0)

如果在外部文件中添加了Javascript。

add_action( 'wp_print_scripts', 'my_deregister_javascript', 100 );
function my_deregister_javascript()
{
  if ( is_page('YOUR PAGE NAME') )
  {
    wp_deregister_script( 'WORDPRESS JS file NAME' );
  }
}

如果Javascript在页眉和页脚中是硬编码的

 if ( !is_page('YOUR PAGE NAME') ) 
  {
    <-- Javascript Code Here -->
  } 

答案 2 :(得分:0)

除非我遗漏了什么;你要做的就是阻止你的“星期日”mypage在星期天重定向到自己。

你已经在客户端检查(javascript),所以不是为WP处理(在每个页面上)添加更多的PHP代码,如果它不是你的“星期日”,修改你的javascript只会重定向会更简单页。即。

<script type="text/javascript">
  var d = new Date();
  var day = d.getDay();

  if (day == 0) {
    var landingPage = "https://example.com/mypage";
    var currenturl = window.location;
    if(landingPage != currenturl) {
      window.location=landingPage;
    }
  }
</script>