Through Typecho's Widget_Options, you can easily obtain Typecho's system information, or easily obtain related configurations, resource paths, etc.
Commonly used Widget_Options functions and usage are listed here for your convenience.
Get path information through Widget_Options
Get built-in URL
Through this type of API, you can obtain some specific URLs built into TE.
$options = Helper::options();
#1 $options->feedUrl(); //或者 echo $op-feedUrl;
#2 $options->feedRssUrl();
#3 $options->feedAtomUrl();
#4 $options->commentsFeedUrl();
#5 $options->commentsFeedRssUrl();
#6 $options->commentsFeedAtomUrl();
#7 $options->xmlRpcUrl();
#8 $options->loginUrl(); //输出Typecho的登录URL地址
#9 $options->registerUrl(); //输出Typecho的注册URL地址
#10 $options->registerAction(); //输出Typecho的注册Action请求地址
#11 $options->profileUrl(); //输出Typecho用户的用户信息页面地址
#12 $options->logoutUrl(); //输出Typecho的注销地址,用户点击之后可实现注销操作。will output:
#1 http://www.4s5.cn/index.php/feed/
#2 http://www.4s5.cn/index.php/feed/rss/
#3 http://www.4s5.cn/index.php/feed/atom/
#4 http://www.4s5.cn/index.php/feed/comments/
#5 http://www.4s5.cn/index.php/feed/rss/comments/
#6 http://www.4s5.cn/index.php/feed/atom/comments/
#7 http://www.4s5.cn/index.php/action/xmlrpc
#8 http://www.4s5.cn/admin/login.php
#9 http://www.4s5.cn/admin/register.php
#10 http://www.4s5.cn/index.php/action/register?_=99788b0bb32d48206a3da981c342a590
#11 http://www.4s5.cn/admin/profile.php
#12 http://www.4s5.cn/index.php/action/logoutGet dynamic URL
Through this type of API, you can dynamically obtain URLs relative to the current theme, current plug-in, etc.
Widget_Options::siteUrl()
$options->siteUrl(); //或者echo $options->siteUrl
$options->siteUrl('mypage.php');
// http://www.4s5.cn/
// http://www.4s5.cn/mypage.phpThe siteUrl() function will output the url relative to the domain name. If the parameter is empty, the domain name of the website is output. If the parameter is not empty, the URL relative to the / directory is output.
Widget_Options::index()
$options->index(); //或者echo $options->index
$options->index('mypage.php');
// http://www.4s5.cn/index.php/
// http://www.4s5.cn/index.php/mypage.phpThe index function outputs the URL relative to index.php, which is very commonly used. If the parameter is empty, index.php is output. If the parameter is non-empty, the URL relative to index.php is output.
Note: If pseudo-static is enabled in the typecho background, Widget_Options::index() will hide index.php in the URL.
Enable permanent link.png
Then:
$options->index(); //或者echo $options->index
$options->index('mypage.php');
// http://www.4s5.cn/
// http://www.4s5.cn/mypage.phpNote that compared to the above, index.php is missing from the url.
Widget_Options::themeUrl()
$options->themeUrl();
$options->themeUrl('mypage.php');
// http://www.4s5.cn/usr/themes/current_theme/
// http://www.4s5.cn/usr/themes/current_theme/mypage.phpThe themeUrl function will get the directory where the theme template is located. If there is no parameter, the / path of the current template will be obtained. If the parameter is non-empty, the path relative to the root directory of the current template will be obtained.
Widget_Options::pluginUrl()
$options->pluginUrl();
$options->pluginUrl('myplugin/some_script.php');
// http://www.4s5.cn/usr/plugins/
// http://www.4s5.cn/usr/plugins/myplugin/some_script.php
pluginUrl函数和themeUrl类似,不过pluginUrl没有“当前”插件的概念,即themeUrl会定位到当前启用的插件目录,即usr/theme/current_theme/,而pluginUrl仅定位到plugins目录,即usr/plugins/
Widget_Options::adminUrl()
$options->adminUrl();
$options->adminUrl('mypage.php');
// http://www.4s5.cn/admin/
// http://www.4s5.cn/admin/mypage.phpadminUrl is similar to pluginUrl and can be dynamically located to the admin directory.
Get system information through Widget_Options
$options->gmtTime();
//1424352251
$options->software();
//Typecho
$options->version();
//1.0/14.10.10
$options->contentType();
//text/html
echo $options->themeFile('my_theme');
// /path_to_your_site_ducutment/usr/themes/my_theme/
echo $options->themeFile('my_theme','mypage.php');
// /path_to_your_site_ducutment/usr/themes/my_theme/mypage.php
echo $options->pluginDir('TypechoDev');//[注意]
// /path_to_your_site_ducutment/usr/plugins注意,通过阅读代码,当前版本(1.0/14.10.10)的Typecho中,pluginDir函数应该有bug,即此函数的参数没有生效,各位筒子在使用中注意一下。
Get background configuration through Widget_Options
Widget_Options::plugin('TypechoDev') function will obtain the configuration of TypechoDev.
$plugin_config = $options->plugin('TypechoDev');
echo get_class($plugin_config);
//Typecho_ConfigIf the Plugin.php file under the plug-in TypechoDev contains the following code:
public static function config(Typecho_Widget_Helper_Form $form){
$enable_menu = new Typecho_Widget_Helper_Form_Element_Radio(
'enable_menu', array ('0' => '禁用', '1' => '启用'), '',
':', '');
$form->addInput($enable_menu);
}Then in the template or plug-in code, you can get the background configuration value in this way:
$options = Helper::options();
$plugin_config = $options->plugin('TypechoDev');
$plugin_config->enable_menu;//可以获取到后台配置的值,即0或者1注意:但要注意,当前版本中,如果对应的插件没有启用,那么可能会导致上述代码执行失败,从而导致系统挂掉。