函数文档

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.