类别 ‘思维异常的备忘录’
1. 三星XXX.
2002年,大三最后几个月,开始为找工作做准备了。大姑父把他用过的一个三星黑色翻盖手机。在沈阳兴冲冲有了自己第一个手机号,联通的没有月租的那种尾号是幸运数字13,具体一个电话多少钱完全不记得了。为什么我那么恨三星?为什么我那么讨厌韩国货?就是这东西给闹的!三大问题:1、信号巨烂;2、接电话掉线;3、电池特短。一个月内耽误了两个面试。一怒之下,决定换手机。
2. 诺基亚3210
即使是在02年,3210也不是什么新款手机。本来是打算买当时广告是小兔子大灰狼的那款(A190?)但临时变了卦,一是图便宜,二是看上它能换壳。买的时候698好像,买完后暑假回家的火车票钱还是跟大钢借的。回寝室第一件事就是把415东丈叫了过来,我用模拟器玩《功夫》,让他把谱听记下来,我再按照谱自己输入到手机上。
之后的一年,放假回家的时候就要换成破烂三星,回学校了就用回3210。
3. 西门子2128
2003年。工作了,老娘出钱给换手机。对当时刚冒出头的彩屏手机不太感冒。而3210其实用得还挺舒服的,但因为是私下买的还不得不换。就找了个市场上当时还不赖的单板机型西门子2128。买的时候还是图便宜和换壳。用上以后才知道什么叫爱不释手。所有的功能都很满意,当时觉得这手机我能用一辈子。花50块钱买了根数据线,传了midi的《天空之城》和《おはよ》(猎人主题曲)作为主力铃声。回大连后号码当然也换成了本地的,13084194123,还是那种性质的卡。3210后来送给老四了。03年底吧好像,要不就是04年初,神州行大众卡出世。貌似15块钱最低消费被叫500分钟免费对于俺这样的少电话者很有诱惑力,就在老程的鼓动下换了现在的号,使用至今。
4. 飞利浦XXX
整件事都是杯具。2005年夏天的一个傍晚,上楼梯的时候俺用右手去打左手上的一只蚊子,蚊子打没打中不知道,反正左手里的小2顺着楼梯缝隙就掉了下去。这次小二终于没抗住,再也不亮了。
听说飞利浦的待机好,正好那个时候总出差,就买了。此时的手机早已进化到了普及彩屏的时代。那款手机的声音效果极好,用KOF97的山崎龙二主场音乐十分霸气。但那手机的软件操作极别扭,而且待机时间也不长,完全没有飞利浦的特色。但再不爽也不能直接扔啊。可能是知道我不待见它,三个月后,在去北京出差的卧铺车厢里,被偷了。
5. 索爱Z208C
心情极端不好,随便去买的这一款。好像并不是当年的机型。只是想换个牌子换换运气。事实证明,凡是俺随便买买的手机,用的时间都比较长。这手机除了容量小点儿之外(不支持卡),没有什么别的缺点了。所以俺还是找midi格式的音乐来做铃声。《天之痕》里的主题曲一用就是两年。后来跟老婆认识了,她说俺手机太脏(原配的壳是磨砂的),坚决要求俺在结婚前换掉这手机。其实这手机一直没坏,除了充电器有点儿接触不好。现在俺老爹还在用。
6. 诺基亚5610MX
2007年春天,准备结婚了,换了这款手机。也是用过最贵的一款手机。滑盖的,确实挺不错。俺还特意下载软件自己做了套主题效果音是全套超级玛丽的。铃声更是自己从演唱会里截的王菲绝版《Don’t break my heart》。去海南蜜月,从博鳌往回走的时候,发现手机不见了。怎么找也找不到,打也关机,心想被偷了。第二天早上去景点的路上,忽然听到座位下面是俺的莱拉之死的闹铃——找到了!但是屏被压得稀碎。这短命手机用了两个月不到。
7. 诺基亚5220MX
2007年5月一直用到今年的就是这个了,买的时候就不贵,可以说是老婆盛怒之下随便指定的一款便宜手机。倒是一直被俺经营地很好。铃声也时不时地换换。最近的一个铃声是FF6主题曲。可惜,又是一屁股……
下一站……
来自静夜燃香的点名游戏.
題目:25件關於我自己的事情,希望你更瞭解我。
被TAG的規則是,寫一篇關於自己的25個想法,完了還要TAG你想瞭解的16個人,或更多。(順序不分前後,想到哪兒寫到哪兒)。
1. 既然点我的人是从音乐开始的,那我也从音乐开始好了。从自主能动听音乐开始,就被当时的同桌带沟里了,听的摇滚乐。攒了半个礼拜的饭钱买的第一张专辑就素何勇的《麒麟日记》。然后开始听窦唯张楚(几乎和何勇是三位一体的)。再之后就是红星XX号、郑钧、许巍。P2P时代之后开始转往国外发展,北欧和荷兰、德国、波兰、捷克的死金黑金庞克乐队不知听了多少,都麻木了。现下比较中意的是荷兰的Within Temptation。可能是因为噪音听得多,所以现在有点反感黑金中意哥特,对比较柔和的Rurutia气声唱腔或BosaNova风格也挺中意。中文歌,我觉得罗大佑李宗盛将来会被尊崇成王维李商隐那个级别的诗人。也比较喜欢那些跟他们亲近或者曾经亲近的歌手。但是……我十分讨厌任贤齐!
2. 把游戏放第二位非我本意。先说硬件吧,曾经有过两台FC、两台MD、一台土星、一台PS、两台GB砖头机、一台GBP、一台GBC、一台iDSL、一台PSP、一台Wii。PS3也想买,可惜已经结婚了。我十分讨厌XBOX!
3. 我游戏玩得其实并不好,动作类、格斗类、体育类苦手,益智类还可以,所以中意RPG和SLG。其实,玩游戏的最大乐趣并不是玩,而是别人玩的时候你站在背后瞎出主意。后来学会了修改,就总是研究如何在不影响剧情下把游戏改得更有趣,但往往取得的后果是游戏剧情进行不下去只能放弃这个游戏。我玩游戏比较看重系统,最不重视画面和音乐。我十分讨厌即时战略游戏和第一人称3D射击游戏!
4. 我不玩网游。包括棋牌类网游和网页游戏。我不喜欢玩没有结局的游戏。
5. 该电影了吧。其实我不爱看喜剧片和恐怖片之外的电影,尤其是不爱上电影院看电影。但是我老婆喜欢,没办法。现在对电影的热情仅限于在电驴上淘CULT片。我十分讨厌《谍影重重》类镜头乱晃的片。
6. 从小就是书虫。先从古龙金庸看起,之后几乎看遍市面上所有武侠。初中比较推崇郑渊洁,高中开始看奇幻,先是大部头的银英,然后是经典大部头的龙枪,饥不择食的时候也会抢女生的言情来看。一度十分推崇温瑞安古龙郑渊洁,后来发现温瑞安郑渊洁老了之后只值得唾弃。古龙应该庆幸自己死得早。现在每天上下班还会在公车上用PSP看这一周的起点和17K的强推。打发时间而已,好书太少。我十分讨厌唐家三少和我吃西红柿这两个!
7. 从变形金刚忍者神龟机器猫圣斗士七龙珠七笑拳侠探寒羽良时代走过来的人,怎么能不喜欢动漫呢?但比较起动画来,还是喜欢看漫画。北条司、富奸和荒木飞吕彦是比较推崇的画家,但这不妨碍我鄙视富奸的人品。CV比较泛爱,但是对有特点的印象比较深,比如郝琳杰、陈大千、爱河里花子、松冈由贵、大谷育江,还有矢尾一树大叔和渡边菜生子大婶。我十分讨厌原哲夫!
8. 我是球迷。喜欢的球队按先后顺序记依次为德国队、国际米兰、纽约尼克斯、荷兰队、斯图加特、底特律活塞、佛罗伦萨、切尔西、大连万达、巴伦西亚、丹佛掘金。最喜欢的足球队员在这里。篮球队员以后有空再说。其他项目喜欢看体操游泳跳水台球拳击柔道击剑滑雪滑冰。我十分讨厌看射击和举重比赛!
9. 我不爱运动。无聊是集体项目还是个人项目;无论是体力项目还是技巧项目都统统不擅长。肌肉不发达,小脑也不发达的类型。唯一对游泳还有点儿自信。
10. 小时候我的理想是长大了当一名邮递员,因为只干两三个的活下午就可以回家打麻将了。
11. 但是我现在是个程序员,闲得时候蛋疼上网看各种无聊的东西,忙的时候累得像死狗一样。
12. 喜欢喝点儿啤酒。无所谓什么牌子,所有的牌子在我看来浓淡有区别味道无差异。但一定要是冰的。
13. 我很懒。但凡能让别人动手的,就绝对不会自己动手。嘴比手更懒,总觉得说那么多没用的不如手底下见真章。所以有的领导喜欢,有的领导不喜欢。
14. 比较打憷别人让我帮忙配电脑。数次解释写软件的跟卖硬件的区别未果之后再也不解释了,反正在别人眼里都是“搞电脑的,一定懂。”其实我对硬件的理解仅仅是,还够用的时候就不必去升级。
15. 对于新技术,比较趋向保守派。只要没有对我有意义的新功能,就不会升级(比如WP3.XX);只要原有的功能能正常用,就不会换新的;只要新技术用不上,我就去他妈的。但是对于想得到的功能也不会吝惜金钱。比如为了减肥买wii的平衡板。所以我十分讨厌庞大却甩不掉的QQ!
16. 实际上手机平均每两年换一台。不是摔坏的,就是坐碎的。手机越换越便宜,唯一的要求就是皮实。
17. 讨厌一切韩国货。不排斥日货。因为韩国货在我眼里就是“不结实”的代名词。
18. 其实每次有聚会通知的时候第一反应都是“有什么好聚的啊,在家待着多好!”但是聚会冷场的时候往往第一个蹦出来讲冷笑话。
19. 不讲卫生。经常攒了几个星期的袜子不洗。实在没得穿了就穿拖鞋去超市买新的。床单被套反过来用的事儿没结婚以前也经常干。
20. 邋遢。东西总乱丢。但奇怪的是自己丢的总能找到,别人一整理即使列了单子也找不到。
21. 除了体育比赛很少看电视。电视机的主要用途是连Wii和当电脑显示器。
22. 有些自闭。不愿意跟陌生人接触。同龄人稍好。
23. 看不惯侵犯公共利益和违反规则而影响到他人的事情。比如人行道上的停放的私家车和占用公共绿地种大葱的老头老太太。
24. 倔强。坚持的东西不多,但是一旦坚持了,就别想劝我改主意。
25. 生来爱抬杠。经常跟好友拌嘴使人蹭出真火,自己还在想,至于么。
不点了,点了也没用。谁想接谁就接吧。
今天本来想写那个系列的第四部分。
就开始回忆,俺究竟是从什么时候开始看H文的呢?
固然,这回忆不比第一次看三级片那样印象深刻。
更多的是因为不好界定。
很难说那种大本黑皮印有大波妹的XXX扫黄纪实算不算H文;又或者万年历里治疗不举或脱肛的细致偏方和按摩手法算不算过度描写;又或者徐X瑄杨X敏的写真算不算最早的黄色图片……
于是思绪像风中飞舞的塑料袋一样东奔西走,一个响亮的名字被读到了大脑的二级缓存中:
大薮春彦!!

大概上初一的时候吧,偶然间在二表哥那里看到一本叫什么什么的复仇的书,作者就是这个家伙。那是俺第一次看内容很黄很暴力的小说——货真价实的黄(老婆被人轮,他又去XX仇人的情妇和女儿)、货真价实的暴力(XX之后全杀死,而且还是弄得满地血像武松干的那次一样的),就觉得很兴奋很过瘾。
而且还有人给加注释。书的不知道第几任主人在目录页画了一个大大的3.16,开篇就点出了本书的宗旨……
大数春彦这个名字也就这么记下了——一个写黄书的。
记得名字就不错了,谁还去计较名字怎么念?再说见字读一半儿,总有70%的概率念出来是对的吧?
这厮的书,风格跟现时的井口升差不多。充斥着犯罪、性、血、液体和脑浆。用子弹是最仁慈的方式了。什么绞肉啊X尸啊活体啊灌肠啊之类的屡见不鲜。俺一直深深地怀疑现在对cult片如此痴迷,是因为受到大薮的启蒙。
后来跟班里和学校里的几个书虫交流过经验之后,又认识了俩作者:西村兽兽寿行和西德尼谢尔顿。
西村跟大薮是一个路子的,但名气比大薮大得多。《追捕》没看过,总听过杨振华的相声吧?不认识中野良子,总认识高仓健吧?《追捕》就是这个人的成名作。
成名作不同于代表作,因为他的作品里,追捕这种模式是很多了,但写得如此干净的,绝无仅有。其余的大多会让男主人公和仇敌一号的老婆搞上那么一搞,或者让女主人公被人轮上那么一轮。甚至有一本书,就是讲群P的,先是和人,后是和狼。可能版署当年看追捕这片太红,就一时冲动允许引进了一批西村的书,后来想禁都禁不掉。甚至于有传闻,很多内容是国内书商在引进的时候,特意要求翻译往里面加的料……
西德尼谢尔顿爷爷就比较冤枉了。不过是在某几部作品里肉戏多了点,就被不法书商拿来挂名头卖A书。90年代初的书市上,但凡看到“西德尼谢尔顿最新力作”的,准定不是什么好货色。
这三个人比较起来,还是喜欢大薮的多些。首先排除的是谢尔顿。不知道为什么,看着渡边早田就是比丹尼斯约翰顺眼一点,也好记。再说西村寿行,他的书最大的问题就是警察出现得太多,还一个一个贼认真的那种,不像大薮,往往是一路大杀杀了好几个月也没人来管= =
当然大薮也有个毛病,跟古龙一样,好烂尾。
还有岑凯伦和雪米莉,俩写言情的。本来不屑一顾的,但有一次闹书荒从前排女生手里抢了本岑回来看。恍然大悟,原来“言情书”是这个调调儿啊!当然看的是伪作。实际上在那个资讯不发达的年代,你是无法分辨出谁是本尊谁是伪作的。岑凯伦尤甚,她根本也没写过那么几十上百本的书,而肉戏看多了,反而觉得那风花雪月的风格的是假的。何况很多伪作文笔要比本尊好得多。一如武侠界的卧龙生和李凉。真品卧龙生的文字那叫一枯燥无味啊……
越写越怀念被窝里蒙头打手电苦读的岁月了。
P.S:77-83这一代,跟后面的85后,差距不是一般的大啊!
侵权勿怪。
话说这东东实在是忘记了从哪个插件的代码里扒出来的,自己改良了一番。却没想到有人感兴趣。就简单说一说用法吧。
首先,把下面这个函数粘贴到function.php里
function history_today($post_year, $post_month,$post_day ){ global $wpdb; //SQL语句里的项目可以随意改良,想要加什么效果请在主贴回复,@lifishake愿意为你服务 $sql = "select ID, year(post_date_gmt) as h_year, post_title, comment_count FROM $wpdb->posts WHERE post_password = '' AND post_type = 'post' AND post_status = 'publish' AND year(post_date_gmt)!='$post_year' AND month(post_date_gmt)='$post_month' AND day(post_date_gmt)='$post_day' order by post_date_gmt"; $histtory_post = $wpdb->get_results($sql); if( $histtory_post ){ foreach( $histtory_post as $post ){ $h_year = $post->h_year; $h_post_title = $post->post_title; $h_permalink = get_permalink( $post->ID ); //注意下边,输出的格式可以自行调整,不愿意加年的把$h_year去掉即可 $h_post .= "<li>$h_year: <a href='".$h_permalink."' title='Permanent Link to ".$h_post_title."'>$h_post_title</a></li>"; } } $content=''; if ( $h_post ){ $content = $content.$h_post; } echo $content; return $content; }
对于这个函数,我在现在的主题中两处用到了它。
第一个是用在calendar的下方。
<li><?php get_calendar(); ?></li> <?php $post_year = date('Y'); $post_month = date('m'); $post_day = date('j'); history_today($post_year, $post_month, $post_day); ?>
其实这个用法是假的,跟calendar一点儿关系都没有,即使点击calendar进了archive里,显示的也还是历史上的“今天”,因为date()取出来的就是今天。我只不过是觉得把“历史上的今天”放在那个位置比较合适而已。
至于“历史上的帖子发出的那一天”,用法是这样的:
如果在single里直接调用,那么照下边的样式粘贴:
<?php echo '<h3>历史上的今天:</h3>' ; $post_year = get_the_time('Y'); $post_month = get_the_time('m'); $post_day = get_the_time('j'); history_today($post_year, $post_month, $post_day); ?>
如果是在singlesidebar里,则要多加一个是否是single的判断条件:
<?php if ( is_single() ){ echo '<h3>历史上的今天:</h3>' ; $post_year = get_the_time('Y'); $post_month = get_the_time('m'); $post_day = get_the_time('j'); history_today($post_year, $post_month, $post_day);} ?>
备注:
此代码实现的其实是“历史上不是这一年的月日相同的这一天”。如果真要实现的话,把第一段代码中的
year(post_date_gmt) != '$post_year'
改成
year(post_date_gmt) < '$post_year'
即可。
Q&A:
留着答疑。
准确的说,这篇主要是译作。我在搜索wordpress+主题+选项的时候并没有找到合适的教程。只有Neoease小哥的一篇符合要求。但是他把一堆属性放到表格的同一位置存放,用起来不是很方便。接着换用英文关键字,终于搜到了这个不错的教程。所以翻译一下并结合自己的理解写这一篇。
我很有诚意的!为了写这个俺甚至换了显示代码的插件。
为主题添加一个选项页是降低复杂主题管理难度的最好的方法。但是,能Google到的资料很少所以很多人都放弃了。在设计上一个如此重要的应用却有很少的文档,貌似那些资深开发者们都把这个方法当作祖传秘方私藏了起来。
在这篇文章中我将合并一个选项面板到WP默认主题(WordPress Classic)中,你学到的方法将很容易扩展到自己的工程上。
首先,blabla……(与WP无关),感谢国家。
我们的目标是,没有蛀牙
我们的目标是,在Wordpress的默认主题上方开辟一个区域,用来显示一段欢迎语。这段欢迎语的内容可以在后台的选项页中进行编辑。后台界面是这个样子的:

如果对加入的选项页的格式不加以控制的话,看起来会非常别扭,所以修改的内容中还包括一部分后台界面的美化。
****后台修改****
我们从修改/wp-content/themes/classic/下的functions.php开始。
为了避免麻烦,在functions.php文件的最前或最后加上下面的代码是最安全的。
首先添加
<?php $themename = "WordPress Classic"; //改成你主题的名字,可以用中文 $shortname = "wpc"; //你主题名字的缩写,一定不要用中文! $options = array ( array( "name" => "欢迎语", "type" => "title"), array( "type" => "open"), array( "name" => "标题", "desc" => "输入欢迎语页面的标题.", "id" => $shortname."_welcome_title", "std" => "", "type" => "text"), array( "name" => "内容", "desc" => "欢迎语的内容.", "id" => $shortname."_welcome_message", "type" => "textarea"), array( "name" => "是否显示?", "desc" => "选中此项如果你**不想**显示欢迎语.", "id" => $shortname."_welcome_disable", "type" => "checkbox", "std" => "false"), //再有想添加的可以参照这个格式进行 /* array( "name" => "内容2", "desc" => "内容2的内容", "id" => $shortname."_welcom2", "type" => "textarea"), */ array( "type" => "close") );
这里是我们创建选项的地方。
我们把每个选项都放到一个数组中,方便在后面把它们组合到一起。每个选项都有一下复用的代码。在每个数组中,我们使用如下参数:
name – 用来显示这个选项的标题(可以是中文)。
desc – 对于这个选项的描述(可以是中文)。
id – 非常重要! 我们用来识别每个存储数据。 $shortname将与id组合到一起存到数据库中,所以id是不能重复的。 (在我们的例子中,把$shortname设成wpc)。
std – 选项的默认值. 例如对于checkbox类型,可以设成true或者false以决定这个选项初始的时候是否选中。
type – 用来定义选项显示的类别. 像文字、文字输入框、checkbox之类。
首先以title类型作为开始。
‘open’选项才是真正有意义的开始,作用是开始表格的绘制(是的,原作者那个笨蛋为了好看用了table,后悔来不及了已经。)
接下来用一个text做欢迎语选项的标题,之后用一个textarea来存放消息的内容。接下来的checkbox用来决定是否启用这个欢迎语。
最后用’close’跟’open’相对应。
所以,利用这个模板,你可以在open和close之间任意增加或删除选项,所要做的只是照葫芦画瓢写一个array而已。注意id。
后边的部分是一坨Wordpress代码,用来具体实现选项页的做成和功能。不感兴趣的可以跳过。感兴趣的,我也在我能看懂的部分加了中文注释。
如果特别关注的话,会发现我对原英文作者的代码改动了两处。因为原来的作者没考虑到往数据库里存代码(比如adsense或analitics)的情况。
And now for the rest of the code. Most of which is a bunch of WordPress functions to tell it this is an options page, so we wont go over most of it:
function mytheme_add_admin() {
global $themename, $shortname, $options;
if ( $_GET['page'] == basename(__FILE__) ) {
if ( 'save' == $_REQUEST['action'] ) { //save按下时的动作
foreach ($options as $value) {
//将内容更新到数据库.译者添加去转义字符命令stripslashes
update_option( $value['id'], stripslashes($_REQUEST[ $value['id'] ]) );
}
foreach ($options as $value) {
if( isset( $_REQUEST[ $value['id'] ] ) ) {
//将内容更新到数据库.译者添加去转义字符命令stripslashes
update_option( $value['id'], stripslashes($_REQUEST[ $value['id'] ] )); }
else {
delete_option( $value['id'] );
}
}
//更新标题栏
header("Location: themes.php?page=functions.php&saved=true");
die;
} else if( 'reset' == $_REQUEST['action'] ) { //reset按下的动作
foreach ($options as $value) {
delete_option( $value['id'] ); }
//更新标题栏
header("Location: themes.php?page=functions.php&reset=true");
die;
}
}
//调用WP函数add_theme_page.回调函数是mytheme_admin(),显示的名字就是主题名+"Options"Options这几个字可以换成别的.
add_theme_page($themename." Options", "".$themename." Options", 'edit_themes', basename(__FILE__), 'mytheme_admin');
}
function mytheme_admin() {
global $themename, $shortname, $options;
//保存后的提示信息,settings saved.可以替换成中文
if ( $_REQUEST['saved'] ) echo '<div id="message" class="updated fade"><p><strong>'.$themename.' settings saved.</strong></p></div>';
//重置后的提示信息,settings reset可以替换成中文
if ( $_REQUEST['reset'] ) echo '<div id="message" class="updated fade"><p><strong>'.$themename.' settings reset.</strong></p></div>';
?>
<div class="wrap">
<!--整个Options页面的标题.完全可以随意发挥.-->
<h2><?php echo $themename; ?> settings</h2>
<form method="post">
<?php foreach ($options as $value) {
switch ( $value['type'] ) {
case "open":
?>
<!--open里table开始了.-->
<table width="100%" border="0" style="background-color:#eef5fb; padding:10px;">
<?php break;
case "close":
?>
</table><br />
<?php break;
case "title":
?>
<table width="100%" border="0" style="background-color:#dceefc; padding:5px 10px;"><tr>
<td colspan="2"><h3 style="font-family:Georgia,'Times New Roman',Times,serif;"><?php echo $value['name']; ?></h3></td>
</tr>
<?php break;
case 'text':
?>
<tr>
<td width="20%" rowspan="2" valign="middle"><strong><?php echo $value['name']; ?></strong></td>
<td width="80%"><input style="width:400px;" name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>" type="<?php echo $value['type']; ?>" value="<?php if ( get_settings( $value['id'] ) != "") { echo stripslashes( get_settings( $value['id'] )); } else { echo $value['std']; } ?>" /></td>
</tr>
<tr>
<td><small><?php echo $value['desc']; ?></small></td>
</tr><tr><td colspan="2" style="margin-bottom:5px;border-bottom:1px dotted #000000;"> </td></tr><tr><td colspan="2"> </td></tr>
<?php
break;
case 'textarea':
?>
<!--我一直觉得作者用的textarea有点大,可以调小一点儿.-->
<tr>
<td width="20%" rowspan="2" valign="middle"><strong><?php echo $value['name']; ?></strong></td>
<td width="80%"><textarea name="<?php echo $value['id']; ?>" style="width:400px; height:200px;" type="<?php echo $value['type']; ?>" cols="" rows=""><?php if ( get_settings( $value['id'] ) != "") { echo get_settings( $value['id'] ); } else { echo $value['std']; } ?></textarea></td>
</tr>
<tr>
<td><small><?php echo $value['desc']; ?></small></td>
</tr><tr><td colspan="2" style="margin-bottom:5px;border-bottom:1px dotted #000000;"> </td></tr><tr><td colspan="2"> </td></tr>
<?php
break;
case 'select':
?>
<!--这里还藏了一个select类型可以用.应该是上传用的吧?-->
<tr>
<td width="20%" rowspan="2" valign="middle"><strong><?php echo $value['name']; ?></strong></td>
<td width="80%"><select style="width:240px;" name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>"><?php foreach ($value['options'] as $option) { ?><option<?php if ( get_settings( $value['id'] ) == $option) { echo ' selected="selected"'; } elseif ($option == $value['std']) { echo ' selected="selected"'; } ?>><?php echo $option; ?></option><?php } ?></select></td>
</tr>
<tr>
<td><small><?php echo $value['desc']; ?></small></td>
</tr><tr><td colspan="2" style="margin-bottom:5px;border-bottom:1px dotted #000000;"> </td></tr><tr><td colspan="2"> </td></tr>
<?php
break;
case "checkbox":
?>
<tr>
<td width="20%" rowspan="2" valign="middle"><strong><?php echo $value['name']; ?></strong></td>
<td width="80%"><? if(get_settings($value['id'])){ $checked = "checked=\"checked\""; }else{ $checked = ""; } ?>
<input type="checkbox" name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>" value="true" <?php echo $checked; ?> />
</td>
</tr>
<tr>
<td><small><?php echo $value['desc']; ?></small></td>
</tr><tr><td colspan="2" style="margin-bottom:5px;border-bottom:1px dotted #000000;"> </td></tr><tr><td colspan="2"> </td></tr>
<?php break;
}
}
?>
<!--</table>-->
<!--俩按钮.-->
<p class="submit">
<input name="save" type="submit" value="Save changes" />
<input type="hidden" name="action" value="save" />
</p>
</form>
<form method="post">
<p class="submit">
<input name="reset" type="submit" value="Reset" />
<input type="hidden" name="action" value="reset" />
</p>
</form>
<?php
}
//在进入控制面板的时候计入选项页
add_action('admin_menu', 'mytheme_add_admin'); ?>后台页面就OK了。在后台选中默认主题激活就可以看到选项页了。
****使用选项****
现在我们要做的是让添加的选项能用起来。这次,打开header.php
我们的任务有:
1.从数据库读取选项
2.判断禁用的checkbox功能是不是选上了,如果没有,才进行下一步
3.判断标题是否存在,如果存在就显示
4.否则,显示基本的“Welcom”
5.判断欢迎语是否存在,存在就显示
6.不存在就显示点儿别的
7.checkbox如果选上了,就什么都不显示。
1.读数据库选项
在 header.php 的底部,添加
<?php global $options; foreach ($options as $value) { if (get_settings( $value['id'] ) === FALSE) { $$value['id'] = $value['std']; } else { $$value['id'] = get_settings( $value['id'] ); } } ?>
上面的代码提取了我们所添加的选项,它们是:
$wpc_welcome_disable
$wpc_welcome_title
$wpc_welcome_message
2. 查看“禁用”选项
<?php if ($wpc_welcome_disable == "false") { ?>
checkbox选中的时候,$wpc_welcome_disable值就是true,未选中就是false。接下来的动作只有未选中的时候才进行。
3. 查看是否有title并显示
<?php if ($wpc_welcome_title) { ?> <h4><?php echo $wpc_welcome_title; ?></h4>
用个H4显示欢迎语的标题
4.否则,显示默认标题
<?php } else { ?> <h4>Welcome!</h4> <?php } ?>
如果标题没设就显示Welcom
5 & 6. 查看并显示欢迎语的内容
<?php if ($wpc_welcome_message) { ?> <p><? echo $wpc_welcome_message; ?></p> <?php } else { ?> <p>Hello and welcome to our site. We hope you enjoy your stay!</p> <?php } ?>
跟上一步差不多但是这次用到的是$wpc_welcome_message 。
7. 如果没选中,就什么都不显示
<?php } else { ?> <!-- You could insert something here which will display when the box IS checked. --> <?php } ?>
虽然不重要,但这几句不能省,不如编不过。
