yoast / google-analytics
将 Google Analytics 添加到 WordPress,并能够使用 Google Analytics 提供的所有强大功能。
Requires
- composer/installers: ~1.0
- xrstf/composer-php52: ^1.0.17
- yoast/api-libs: ^2.0
- yoast/i18n-module: ^1.0
- yoast/license-manager: ^1.2
Requires (Dev)
- yoast/yoastcs: dev-master
README
WordPress 最好的 Google Analytics 集成。毫无疑问。
贡献
欢迎任何人为 MonsterInsights 贡献。请阅读贡献指南。
您可以通过多种方式做出贡献
错误
如果您发现一个问题,请在此处告诉我们!
支持
这是 MonsterInsights 的 WordPress Google Analytics 开发者门户,不应用于支持。
对于轻量版,请使用 monsterinsights.com 的 轻量版支持。
对于专业版用户,请使用我们网站“我的账户”页面上“支持”选项卡中的支持表单(注意:您必须登录且拥有有效的许可证才能使用此表单)。
请将安全问题报告给 support@monsterinsights.com
开发者向后兼容性指南
请注意,插件管理端的所有功能,包括任何 php/js/css 函数、类名、文件(或文件名)、钩子等,都不会保证向后兼容,这是一般规则。我们的管理代码可能会在任何时候不经警告而更改。由于 MonsterInsights 是一个前端插件,我们不确定为什么您会用我们的后端代码来构建东西。如果您出于某种原因需要使用我们的后端代码(位于管理端或仅在管理端排队的任何内容),请告诉我们您的用例,以便我们可以调整此政策并确保您的代码在未来不会中断。
对于前端,我们不会保证 JS 输出始终相同,因为我们将在一段时间内调整它以确保与 Google Analytics 的兼容性并添加功能。然而,我们将尽最大努力保证在 lite/includes/frontend
、pro/includes/frontend
和 includes/frontend
目录中发现的任何钩子(过滤器或操作)的向后兼容性。这些钩子已按此类文档记录。任何未来的中断都将提前广泛公告,我们将尽力不破坏任何人的钩子使用。
代码样式文档
MonsterInsights遵循WordPress核心PHP标准,但有一些偏差如下。有关使用此标准的文档信息,请参阅https://make.wordpress.org/core/handbook/best-practices/coding-standards/php/。
偏差
- 使用
elseif
,而不是else if
- 在MonsterInsights中,使用
else if
,因为我们不允许使用if else
的冒号形式,这使得核心规则的理由无效。冒号形式的if else
对于像Sublime Text这样的文本编辑器来说,解析条件逻辑的开头和结尾更困难,因此是不允许的。
- 在MonsterInsights中,使用
- 尽可能避免使用正则表达式
- 正则表达式使得新贡献者更难做出贡献。因此,在可能的情况下,应避免使用正则表达式。
- Yoda条件
- 代码永远不会被编写成变量非严格地与
true
或false
进行比较。使用适当的if语句的写法。if ( true == $var )
等价于if ( $var )
,后者更容易阅读。然而,当需要严格比较时(===
),应使用if ( true === $var )
。
- 代码永远不会被编写成变量非严格地与
添加
- 必需:代码应使用4个空格的制表符格式化
- 每制表符4个空格是普遍接受的默认制表符大小。在大多数编辑器中,制表符更容易阅读。此外,它们比4个空格占用更少的文件空间。
- 必需:过滤器和函数名称应使用下划线,而不是破折号
- 为了保持一致性,所有过滤器和函数应使用下划线而不是破折号或驼峰命名法来分隔单词。此外,所有过滤器和(不在类中的函数)名称应前面加上
monsterinsights_
。唯一的例外是需要仅针对专业版或轻量版的过滤器,在这种情况下,它们应分别以monsterinsights_pro_
和monsterinsights_lite_
开头。类中的函数不应以monsterinsights_
开头。
- 为了保持一致性,所有过滤器和函数应使用下划线而不是破折号或驼峰命名法来分隔单词。此外,所有过滤器和(不在类中的函数)名称应前面加上
- 必需:与不在类中的函数关联的钩子,将在函数声明的末尾关联到该函数
- 由于MonsterInsights要求所有函数都有一个函数docbloc紧跟在函数声明的前面,为了更容易找到与函数关联的钩子,
add_action
或add_filter
对函数的调用应直接放在函数声明之后。对于类中的函数,此规则不适用,因为这不可能做到。
- 由于MonsterInsights要求所有函数都有一个函数docbloc紧跟在函数声明的前面,为了更容易找到与函数关联的钩子,
- 建议:使用前置增量(
++i
)而不是后置增量(i++
)- 前者更高效,因为它不需要制作变量的副本。此规则并非强制执行,如果它会影响代码的可读性或简洁性,则应忽略。
- 建议:尽可能避免存储数据更改
- 此插件有大量活跃安装。因此,在可能的情况下,我们应尝试避免需要升级例程以转换存储数据。只要它回退到现有数据、智能默认值或以受控方式停止执行,添加数据以提高性能的例程是可以的。
语言翻译、文本域和国际化
MonsterInsights支持翻译。多亏了庞大的.org翻译团队,插件的大部分内容已翻译成多种语言。
使用哪个文本域
在googleanalytics-premium.php文件和/pro/目录中仅使用ga-premium
。其他地方使用google-analytics-for-wordpress
。
MonsterInsights Lite使用WordPress.org提供的翻译文件。MonsterInsights Pro加载Lite的翻译文件以与Lite共享的文件,并且为仅限Pro的文件加载仅限Pro的翻译文件。这些文件是从Pro翻译中自动创建的。每次Pro版本发布时,都会下载最新版本的这些文件并部署。
如何贡献翻译
通过位于这里的WordPress.org翻译系统。
我发现了一个用户可以看到的无法翻译的字符串。我应该怎么办?
请为此打开一个问题。
自动化和外部库
MonsterInsights的项目目标是尽可能拥抱自动化。
MonsterInsights项目任务运行器标准是Robo,该项目的任务可以在RoboFile.php(不公开)中找到,并通过以下方式执行:robo {command}
整个部署过程,即创建新的MonsterInsights版本并发布的过程,完全通过Robo自动化(无需人工交互)。
MonsterInsights项目依赖关系管理系统是Composer。请确保您在PR中不要意外覆盖我们的composer文件。
我们还使用Node/NPM管理插件主要用到的包,主要用于管理后台样式和功能。
一般情况下,我们将始终使用Composer或NPM依赖项的最新稳定版本,在自动化发布过程中拉取和打包,只要可能。我们可能使用过时包的原因包括(但不限于)
- 缺少PHP版本支持
- 依赖项当前版本的bug影响我们的插件对依赖项的使用
- 发布我们的插件之前没有时间测试依赖项的当前版本
- 安全问题,可能是公开的,也可能不是
- 依赖项与另一个依赖项之间的兼容性问题
- 依赖项的变化影响了MonsterInsights与其他插件冲突-free的能力
- 等等
尽可能的情况下,我们将始终覆盖/前缀我们在依赖项中包含的所有CSS规则、JS函数和PHP类和函数名称。考虑到有约200万活跃安装,不这样做是不可能的(那里有太多的糟糕代码插件)。这个过程是完全自动化的,并在发布时进行,在composer/npm拉取最新依赖项版本和自动生成zip文件之间进行。
尽可能的情况下,我们还将所有JS/CSS文件从依赖项压缩成一个用于使用的文件,除非有兼容性问题,或者我们使用的CSS/JS压缩器解析器有bug。
关于包管理MonsterInsights的警告
我们既不维护也不计划允许我们的插件通过Composer、Packagist或其他类似系统安装。
我们也不建议您通过直接代码或管理系统(例如通过GitHub仓库下载Composer包)来假设我们的插件,在任何分支上都是当前和/或稳定的分支。
我们插件的唯一官方和维护源是WordPress.org的Lite版本,以及Pro版本的“我的账户”区域(或通过自动更新)。
开发检出流程
composer install
cd assets
npm update
常量
以下常量可以在wp-config文件中定义,以便在安装基础中开启和关闭MonsterInsights的各个部分(以及用于单元测试)
Pro和Lite都适用
插件定义
MONSTERINSIGHTS_VERSION
- 已安装的Pro/Lite版本
MONSTERINSIGHTS_PLUGIN_NAME
- 插件的名称
MONSTERINSIGHTS_PLUGIN_SLUG
- 该插件的slug
MONSTERINSIGHTS_PLUGIN_FILE
- 该文件名称
MONSTERINSIGHTS_PLUGIN_DIR
- MI基础文件夹的路径
MONSTERINSIGHTS_PLUGIN_URL
- MI基础文件夹的URL
用户定义
MONSTERINSIGHTS_LICENSE_KEY
- MonsterInsights的许可证密钥(作为后备使用,请尽管使用认证,而不是这个,因为在多站点网络面板上现在可以这样做)
MONSTERINSIGHTS_FORCE_ACTIVATION
- 覆盖WP版本激活检查。风险自负。
MONSTERINSIGHTS_AIRPLANE_MODE
- 用于未来使用。目前不执行任何操作。对于本地站点测试很有用。
MONSTERINSIGHTS_GA_UA
- 不使用OAuth或向导,而是硬编码使用UA。注意,这不会允许后端报告工作。您还可以使用过滤器
monsterinsights_get_ua
。
- 不使用OAuth或向导,而是硬编码使用UA。注意,这不会允许后端报告工作。您还可以使用过滤器
MONSTERINSIGHTS_MULTISITE_GA_UA
.- 您可以使用此常量来强制MS安装的所有子站使用相同的UA。注意,这不会允许后端报告工作。
仅Lite版本
MONSTERINSIGHTS_LITE_VERSION
- 已安装的Lite版本
仅Pro版本
MONSTERINSIGHTS_PRO_VERSION
- 已安装的Pro版本