【问题标题】:Wordpress function to check if table is emptyWordpress 函数检查表是否为空
【发布时间】:2015-07-22 15:16:35
【问题描述】:

我正在 MediaTemple WP Hosting 上运行一个 WP 博客。它们提供了一个内置函数来集成 Google Analytics 代码。由于我需要对 GA 跟踪代码进行一些更改以匿名用户 IP,因此我想禁用该功能并将其替换为自定义功能。

这里是MT内置函数:

    public function add_ga_tracking_snippet_to_head()
{
    if ( get_option( $this->plugin->name . '_web_property_id_head' ) !== false ) {
        $web_property_id = get_option( $this->plugin->name . '_web_property_id_head' );
?>
<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', '<?php echo $web_property_id ?>', 'auto');
  ga('send', 'pageview');
</script>
<?php
    }
}

这是存储 GA ID 的 db 表的屏幕截图:

现在,如果我删除 option_value 表中的 ID,该函数不应打印任何 &lt;script&gt;...&lt;/script&gt;,因为条件语句 if ( get_option( $this-&gt;plugin-&gt;name . '_web_property_id_head' ) !== false ) 但这样不行。

这就是我得到的:

附:我什至尝试使用isset!empty 更改功能,但没有成功。我哪里错了?

【问题讨论】:

  • 你能告诉我这个结果吗:var_dump(get_option( $this-&gt;plugin-&gt;name . '_web_property_id_head' ));
  • @tuananh 结果是string(13) "UA-516XXXXX-X
  • 所以它不是空的。因此,您的解决方案都不起作用。您需要确保此函数返回空字符串。

标签: mysql wordpress google-analytics mediatemple


【解决方案1】:

get_option( $this-&gt;plugin-&gt;name . '_web_property_id_head' ) 行必须是 false 才能使条件不执行。

MySQL 中的空字符串和 NULL 不是布尔值,因此它们永远不会转到 !== false

【讨论】:

  • 如果您的意思是在表格中输入false,结果如下:ga('create', 'false', 'auto'); ga('send', 'pageview');
  • 我认为这是字符串'false',而不是布尔值false。我的观点显然是条件解析为真,所以很明显get_option() 返回的不是布尔值false
  • 那么你会推荐什么?更改函数的条件语句以使其正常工作?如果是这样,您介意提供一个例子吗?
【解决方案2】:

不幸的是,MT 核心插件需要修改才能正常工作。这是修复:

if ( get_option( $this->plugin->name . '_web_property_id_head' ) !== '' ) {

我在 MT 支持上开了一张票,要求他们正式修复该功能。

【讨论】:

    猜你喜欢
    • 2012-11-25
    • 2014-06-06
    • 1970-01-01
    • 2014-11-12
    • 1970-01-01
    • 2017-02-20
    • 1970-01-01
    • 2017-09-13
    相关资源
    最近更新 更多