wordpress主题如何自定义公用全局函数变量入门
feilong.org 修订于2011-06-04 09:03:49 1,751定制wordpress主题的时候,飞龙需要重复用到一些函数值,比如category.php的当前页分类id,single.php的日志分类ids。还有如果你不想用 custom post type,势必要用到categories的顶级分类id和slug,用来判断和分别日志的各种“类型”。为避免重复定义这些基本的值,这里飞龙想采用全局或公用函数变量。wordpress 主题如何自定义公用全局函数变量?飞龙把测试成果写在这里:http://feilong.org/wordpress-define-global-var 飞龙第4次修订于20101102 ,希望对您有用!
一、飞龙测试的变量基础知识:
(一)&的作用
<?php $a = '5'; $b = &$a; //表示 $b 和 $a 引用了同一个变量 $a = '8'; //这里重置了 $a echo $b; //将输出8 unset($a); //清除变量 $a,于是引用关联失效 echo $b; //这里仍输出 8 $a = '9'; echo $b; //因为引用关联失效,这里仍输出8 ?> |
(二)变量赋值
<?php $name = 'feilong.org'; //传值赋值,字符串 $my = $name; //传值赋值,变量 $addr = &$name; //通过 & 传地址方式赋值 $name = 'feilong'; //重设 $name 值 echo $name; //feilong echo $my; //feilong.org echo $addr; //feilong $addr = 'jiaju99'; //$addr是与$name是传地址赋值,改变目标变量也会影响原始变量,反之亦然。 echo $name; //jiaju99 echo $addr; //jiaju99 ?> |
(三)变量与function关系
<?php $zhe = 'feilong'; function zhege() { echo 'nono'.$zhe; //函数内部不能直接调用 $zhe }zhege();//只显示 nono echo 'yesyes'.$zhe; //函数外 $zhe当然会被调 $na = 'org'; function nage($na) {//参数 $na 发生传递 echo '3 飞龙'.$na; //此时函数内部通过传递,调用 $na }nage($na);//参数 $na 不能丢 ?> |
(四)动态变量
<?php $var = 'mysite'; //变量$var_name 传值赋值,字符串 $$var = 'aneave.com'; //使用 $var 的值 作为变量名,即 $$var = $mysite echo $var; //mysite echo $$var; //aneave.com echo $mysite; //aneave.com ?> |
(五)全局变量
预定义变量:比较多,包括超级全局变量(Superglobals)
Superglobals — Superglobals are built-in variables that are always available in all scopes
$GLOBALS — References all variables available in global scope
$_SERVER — Server and execution environment information
$_GET — HTTP GET variables
$_POST — HTTP POST variables
$_FILES — HTTP File Upload variables
$_REQUEST — HTTP Request variables
$_SESSION — Session variables
$_ENV — Environment variables
$_COOKIE — HTTP Cookies
还有其它的
$php_errormsg — The previous error message
$HTTP_RAW_POST_DATA — Raw POST data
$http_response_header — HTTP response headers
$argc — The number of arguments passed to script
$argv — Array of arguments passed to script
二、开始测试公用或全局变量的运用
(一)首先,飞龙fuctions.php测试公用全局函数变量的n种定义方法
<?php //1.fuctions.php中,定义公用函数 function goods(&$a) { $a = '5'; } //同时定义对应get函数,注意:这里没用global声明 function getgoods($b) { return $b; } //2.或直接自定义函数 setgoodsid() function setgoodsid() { $goodsid = '5';//写在function里面 return $goodsid; } //3.或自定义函数 这次使用了global $goodsid= '5'; //写在function外面 function getglobal_goodsid() { global $goodsid; return $goodsid; } //4. 这次不用global,也不用'&' ,而是用静态变量 function mylove() { static $love = 'yinlinghua.com'; //函数内部,使用 static 标示$a为静态变量 return $love; } //5. 这次用 GLOBALS 全局变量数组 声明 $girlname = 'yilulu'; function girl() { return $GLOBALS["girlname"]; //使用$GLOBALES["girlname"]数组,申明 $girlname 为全局变量 } ?> |
(二)然后,相应的,在其它php文件比如sidebar.php,调用函数变量值的n种办法
<?php //1.执行公用函数goods() 使函数里的变量$c得到赋值! goods($c); //然后显示$c echo $c; //5 //或者,执行对应get函数 echo getgoods($c); //也是5 //2.直接取出setgoodsid()的值,似乎也可,不知稳定否? echo setgoodsid();//也是5 //3.或者直接取出getglobal_goods() echo getglobal_goodsid();//函数调用 global $goodsid; echo $goodsid;//也可以先global呼应一下变量,再调出变量 //4.直接取出静态变量值 echo mylove();//尚需进一步考证,似乎最理想? //5. 全局变量数组$GLOBALS 调用方法 echo girl();//函数调用 echo $GLOBALS["girlname"]; //或者,直接调用全局变量数组$GLOBALS的 键girlname的值 global $girlname;echo $girlname;////或者,global申明呼应 $girlname为全局变量,然后调用 $girlname ?> |
OK,blog()和getblog()的写法依样画葫芦吧?
更新网址:http://feilong.org/wordpress-define-global-var
最初发布:20101104 03:03:59 feilong.org 于广州
加入收藏夹,查看更方便。
所在分类: wordpress