【问题标题】:Disable script executed on specific Wordpress page禁用在特定 Wordpress 页面上执行的脚本
【发布时间】:2017-10-24 08:31:00
【问题描述】:

我想要一个现在在我的整个 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' );

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

谁能告诉我该怎么做才能让它工作?

【问题讨论】:

  • 您根本无法将 javascript 放入 php 函数中。只需在那里进行适当的 PHP 重定向,而不是 javascript
  • 你不能把 JS 代码和 PHP 代码混在一起,就好像它们是同一种语言一样。在 PHP 中获取一天,然后使用 header() 重定向。反正比用 JS 做的要干净得多。

标签: javascript php wordpress


【解决方案1】:

除非我错过了什么;您要做的就是防止您的“星期日”我的页面在星期日重定向到自己。

您已经在客户端(javascript)进行检查,因此与其添加更多 PHP 代码供 WP 处理(在每个页面上),不如将您的 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>

【讨论】:

  • 没错,它有效!感谢 scytale,以及大家的回答。
【解决方案2】:

正如我在评论中已经说过的,您不能将 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(谢天谢地),所以我没有测试过代码。我刚刚调整了你的逻辑:)

【讨论】:

    【解决方案3】:

    如果在外部文件中添加了 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 -->
      } 
    

    【讨论】:

      猜你喜欢
      • 2018-07-26
      • 1970-01-01
      • 1970-01-01
      • 2011-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-26
      • 1970-01-01
      相关资源
      最近更新 更多