init()
云策文档标注
概述
init() 函数用于初始化 Magpie RSS 解析器的常量,设置默认值,除非用户已定义覆盖。它确保常量在未定义时被正确配置,包括缓存、调试和用户代理等选项。
关键要点
- 函数检查 MAGPIE_INITALIZED 常量,若已定义则直接返回,避免重复初始化。
- 为多个 Magpie 相关常量设置默认值,如 MAGPIE_CACHE_ON、MAGPIE_CACHE_DIR、MAGPIE_CACHE_AGE 等,仅在未定义时定义。
- 动态生成 MAGPIE_USER_AGENT 常量,基于 WordPress 版本和缓存状态。
- 定义其他常量如 MAGPIE_FETCH_TIME_OUT 和 MAGPIE_USE_GZIP,控制超时和压缩行为。
代码示例
if ( !defined('MAGPIE_CACHE_ON') ) {
define('MAGPIE_CACHE_ON', 1);
}
if ( !defined('MAGPIE_USER_AGENT') ) {
$ua = 'WordPress/' . $GLOBALS['wp_version'];
if ( MAGPIE_CACHE_ON ) {
$ua = $ua . ')'; // 注意:原文中此处可能缺少前缀,实际代码应检查上下文
}
else {
$ua = $ua . '; No cache)';
}
define('MAGPIE_USER_AGENT', $ua);
}注意事项
- 函数依赖于全局变量 $GLOBALS['wp_version'] 来构建用户代理字符串,确保 WordPress 环境已加载。
- 常量定义使用条件检查,允许用户通过提前定义来覆盖默认值,提供灵活性。
- 代码中 MAGPIE_INITALIZED 常量名拼写为 'INITALIZED',可能为笔误,实际应为 'INITIALIZED',使用时需注意。
原文内容
Set up constants with default values, unless user overrides.
Source
function init () {
if ( defined('MAGPIE_INITALIZED') ) {
return;
}
else {
define('MAGPIE_INITALIZED', 1);
}
if ( !defined('MAGPIE_CACHE_ON') ) {
define('MAGPIE_CACHE_ON', 1);
}
if ( !defined('MAGPIE_CACHE_DIR') ) {
define('MAGPIE_CACHE_DIR', './cache');
}
if ( !defined('MAGPIE_CACHE_AGE') ) {
define('MAGPIE_CACHE_AGE', 60*60); // one hour
}
if ( !defined('MAGPIE_CACHE_FRESH_ONLY') ) {
define('MAGPIE_CACHE_FRESH_ONLY', 0);
}
if ( !defined('MAGPIE_DEBUG') ) {
define('MAGPIE_DEBUG', 0);
}
if ( !defined('MAGPIE_USER_AGENT') ) {
$ua = 'WordPress/' . $GLOBALS['wp_version'];
if ( MAGPIE_CACHE_ON ) {
$ua = $ua . ')';
}
else {
$ua = $ua . '; No cache)';
}
define('MAGPIE_USER_AGENT', $ua);
}
if ( !defined('MAGPIE_FETCH_TIME_OUT') ) {
define('MAGPIE_FETCH_TIME_OUT', 2); // 2 second timeout
}
// use gzip encoding to fetch rss files if supported?
if ( !defined('MAGPIE_USE_GZIP') ) {
define('MAGPIE_USE_GZIP', true);
}
}
Changelog
| Version | Description |
|---|---|
| 1.5.0 | Introduced. |