Conquercplusplus's Blog

February 10, 2010

WordPress 主题开发之需要调用的PHP代码

Filed under: wordpress — conquercplusplus @ 2:33 am

如果要开发一个主题,那么首先需要了解主题开发中需要的模版文件及PHP代码。

WordPress模板基本文件

style.css 样式表文件,必须被包含在主题里
index.php 主页文件
single.php 日志单页文件
page.php 独立页面文件
404.php 404错误页面
header.php 网页头部文件
sidebar.php 网页侧边栏文件
footer.php 网页底部文件
author.php 作者模板. 当作者被查询时使用.
searchform.php 搜索表单文件
search.php 搜索页面文件
comments.php 留言区域文件(包括留言列表和留言框)
comments-popup.php 弹出式评论模板文件.
date.php 关于 date/time 的模板. 当日期时间被请求时使用. Year, month, day, hour, minute, second.
category.php 类别模板. 当类别信息被请求时调用.
archvie.php 分类和日期存档页文件,当一个分类,作者或者日期被请求时调用. 注意这个模板有可能因为各自的目的不同而被 category.php, author.php, and date.php 替代调用.

WordPress Header头部 PHP代码

注: 也就是位于和之间的PHP代码

<!–p bloginfo(’name’);–>网站标题
<!–p wp_title();–>日志或页面标题
<!–p bloginfo(’stylesheet_url’);–>Wordpress主题样式表文件style.css的相对地址
<!–p bloginfo(’pingback_url’);–>Wordpress博客的Pingback地址
<!–p bloginfo(’template_url’);–>Wordpress主题文件的相对地址
<!–p bloginfo(’version’);–>博客的Wordpress版本
<!–p bloginfo(’atom_url’);–>Wordpress博客的Atom地址
<!–p bloginfo(’rss2_url’);–>Wordpress博客的RSS2地址
<!–p bloginfo(’url’);–>Wordpress博客的绝对地址
<!–p bloginfo(’name’);–>Wordpress博客的名称
<!–p bloginfo(’html_type’);–>网站的HTML版本
<!–p bloginfo(’charset’);–>网站的字符编码格式

WordPress 主体模板 PHP代码

<!–p the_content();–>日志内容
<!–p if(have_posts()) :–>确认是否有日志
<!–p while(have_posts()) : the_post();–>如果有,则显示全部日志
<!–p endwhile;–>结束PHP函数”while”
<!–p endif;–>结束PHP函数”if”
<!–p get_header();–>header.php文件的内容
<!–p get_sidebar();–>sidebar.php文件的内容
<!–p get_footer();–>footer.php文件的内容
<!–p the_time(’m-d-y’)–>显示格式为”02-19-08″的日期
<!–p comments_popup_link();–>显示一篇日志的留言链接
<!–p the_title();–>显示一篇日志或页面的标题
<!–p the_permalink()–>显示一篇日志或页面的永久链接/URL地址
<!–p the_category(’, ‘)–>显示一篇日志或页面的所属分类
<!–p the_author();–>显示一篇日志或页面的作者
<!–p the_ID();–>显示一篇日志或页面的ID
<!–p edit_post_link();–>显示一篇日志或页面的编辑链接
<!–p get_links_list();–>显示Blogroll中的链接
<!–p comments_template();–>comments.php文件的内容
<!–p wp_list_pages();–>显示一份博客的页面列表
<!–p wp_list_cats();–>显示一份博客的分类列表
<!–p next_post_link(’ %link ‘)–>下一篇日志的URL地址
<!–p previous_post_link(’%link’)–>上一篇日志的URL地址
<!–p get_calendar();–>调用日历
<!–p wp_get_archives()–>显示一份博客的日期存档列表
<!–p posts_nav_link();–>显示较新日志链接(上一页)和较旧日志链接(下一页)
<!–p bloginfo(’description’);–>显示博客的描述信息

其它的一些Wordpress模板代码

/%postname%/ 显示博客的自定义永久链接
<!–p the_search_query();–>搜索表单的值
<!–p _e(’Message’);–>打印输出信息
<!–p wp_register();–>显示注册链接
<!–p wp_loginout();–>显示登入/登出链接
<!–ext pag–>在日志或页面中插入分页
<!–or–>截断日志
<!–p wp_meta();–>显示管理员的相关控制信息
<!–p timer_stop(1);–>显示载入页面的时间
<!–p echo get_num_queries();–>显示载入页面查询

WordPress 基本的常用函数

Filed under: wordpress — conquercplusplus @ 2:30 am

 

近几天又在看wordpress 的函数,有些常用的函数总是记不住,所以总结一下放在这里方便以后查询:

基本条件判断函数:

is_home():是否为主页
is_single():是否为内容页 (Post)
is_page():是否为内容页 (Page)
is_category():是否为 Category/Archive 页
is_tag():是否为标签 (Tag) 存档页
is_date():是否为指定日期存档页
is_year():是否为指定年份存档页
is_month():是否为指定月份存档页
is_day():是否为指定日存档页
is_time():是否为指定时间存档页
is_archive():是否为存档页
is_search():是否为搜索结果页
is_404():是否为 "HTTP 404: Not Found" 错误页
is_paged():主页 /Category/Archive 页是否以多页显示

Header 部分常用到的 PHP 函数

<?php bloginfo('name'); ?>:博客名称 (Title)
<?php bloginfo('stylesheet_url'); ?>:CSS 文件路径
<?php bloginfo('pingback_url'); ?>:PingBack URL
<?php bloginfo('template_url'); ?>:模板文件路径
<?php bloginfo('version'); ?>:WordPress 版本
<?php bloginfo('atom_url'); ?>:Atom URL
<?php bloginfo('rss2_url'); ?>:RSS 2.o URL
<?php bloginfo('url'); ?>:博客 URL
<?php bloginfo('html_type'); ?>:博客网页 HTML 类型
<?php bloginfo('charset'); ?>:博客网页编码
<?php bloginfo('description'); ?>:博客描述
<?php wp_title(); ?>:特定内容页 (Post/Page) 的标题

模板常用的 PHP 函数及命令

<?php get_header(); ?>:调用 Header 模板
<?php get_sidebar(); ?>:调用 Sidebar 模板
<?php get_footer(); ?>:调用 Footer 模板
<?php the_content(); ?>:显示内容 (Post/Page)
<?php if(have_posts()):?>:检查是否存在 Post/Page
<?php while(have_posts()):the_post(); ?>:如果存在Post/Page则予以显示
<?php endwhile; ?>:While 结束
<?php endif; ?>:If 结束
<?php the_time('字符串') ?>:显示时间,时间格式由"字符串"参数决定,具体参考 PHP 手册
<?php comments_popup_link(); ?>:正文中的留言链接,如果使用 comments_popup_script(); 则新窗口打开链接
<?php the_title(); ?>:内容页 (Post/Page) 标题
<?php the_permalink() ?>:内容页 (Post/Page) URL
<?php the_category(',') ?>:特定内容页 (Post/Page) 所属 Category
<?php the_author(); ?>:作者
<?php the_ID(); ?>:特定内容页 (Post/Page) ID
<?php edit_post_link(); ?>:如果用户已登录并具有权限,显示编辑链接
<?php get_links_list(); ?>:显示 Blogroll 中的链接
<?php comments_template(); ?>:调用留言/回复模板
<?php wp_list_pages(); ?>:显示 Page 列表
<?php wp_list_categories(); ?>:显示 Categories 列表
<?php next_post_link('%link '); ?>:下一篇文章链接
<?php previous_post_link('%link'); ?>:上一篇文章链接
<?php get_calendar(); ?>:日历
<?php wp_get_archives() ?>:显示内容存档
<?php posts_nav_link(); ?>:导航,显示上一篇/下一篇文章链接
<?php include(TEMPLATEPATH . '/文件名'); ?>:嵌入其他文件,可为定制的模板或其他类型文件

与模板相关的其他函数

<?php _e('Message'); ?>:输出相应信息
<?php wp_register(); ?>:显示注册链接
<?php wp_loginout(); ?>:显示登录/注销链接
<!–next page–>:将当前内容分页
<!–more–>:将当前内容截断,以不在主页/目录页显示全部内容
<?php timer_stop(1); ?>:网页加载时间(秒)
<?php echo get_num_queries(); ?>:网页加载查询量

如何让WordPress列出某一分类最新发表的文章(Recent Posts)

Filed under: wordpress — conquercplusplus @ 2:29 am

ordpress的Recent Posts功能不错,有利于提高pv量,给读者带来更好的体验感受,为了更好的改善用户体验,有时候需要调取某一个分类最新发表的文章(即Recent Posts),那么如何才能读取呢,根据Wordpress首页读取文章的语句我们可以变相实现,现在就来一起学习一下吧:

<?php query_posts(‘category_name=Foobar2000&showposts=5′); ?>
<?php while (have_posts()) : the_post(); ?>
        <li><a href=”<?php the_permalink(); ?>”>
          <?php the_title(); ?>
          </a>  </li>
        <?php endwhile; ?>

其中“category_name=Foobar2000”是读取分类“Foobar2000”的Recent Posts(最新发表的文章),“showposts=5”是读取最新的5条Recent Posts,使用的时候把这两项修改成你自己的就可以了。

出自:http://anysns.com

使用自定义页面作为WordPress首页

Filed under: wordpress — conquercplusplus @ 12:50 am

如果我想使用一些内容代替自己最新的日志来作为博客首页,这可能在WordPress中实现吗?
这不仅仅是可能而且相对来说很简单实现。第一步就是去创建一个页面作为你的博客首页。

为实现这个例子,我们将它称作“My New Home Page”。

1.在管理(Manage)面板中选择页面(Pages)选项卡
2. 点击建立页面(Create a New Page)
3.给页面定义一个标题:“My New Home Page”
4.为你的主页添加内容
5.设置页面发表状态为“已发表”
6.点击发表按钮

*2.5以后的版本点击撰写->页面(译者注)

这时仍然在撰写页面的子面板中建立第二个页面

1.给该设置标题为“Recent Posts”(或者其他任何名字,这个页面将显示你的最新日志)
2.你不需要为这个页面添加任何页面内容
3.设置页面发表状态为“已发表”
4.点击发表按钮

现在你可以告诉WP你使用了新的页面作为首页了:

1.在设置(Options)面板选择阅读(Reading)选项卡

2.在阅读(Reading)选项卡的顶部你可以看到如下图内容:

Wordpress 
Reading Options

3.为了更改网站首页(Front page)为你的新首页,把首页显示(Front Page displays)选择静态页面(static page)
4.从网站首页(Front page)下拉菜单中选择“My New Home Page”
5.现在该设置哪个页面用来显示你的最新日志了,从文章页面(Posts page)菜单中选择你刚才建立的“Recent Posts”页面

WordPress 
Selected Reading Options

6.点击保存修改(Update Options)

现在看看你的站点,“My New Home Page”现在应该成了你的主页了。

注意:任何输入到被你指定为文章页面(Posts page)的页面内容都会被你的最新日志列表所覆盖。
可以查看WordPress Codex page: Reading Options Subpanel

修改你的页面菜单

如果你使用的主题被设置为显示你的页面列表,这个列表现在会包含着“My New Home Page”及“Recent Posts”两个链接。这会造成一点问题——我们的菜单中与其他页面链接一道会显示一个“主页(home)”的链接。

default bloggin experiment menu
这是 menubar.php主题文件中的代码:

<div class=”TopMenu”>
<a name=”top” id=”top”></a>
<ul>
<li><a href=”<?php echo get_option(’home’); ?>/”>Home </a></li>

<?php wp_list_pages(’depth=1&sort_column=menu_order&title_li=’ . __(”) . ” ); ?>
</ul>
</div>

简单的移除主页链接:

<li><a href=”<?php echo get_option(’home’); ?>/”>Home </a></li>

这又会存在另一个问题,现在我们的页面链接是按照字母顺序排列的。幸运的是在代码里wp_list_pages函数中的sort_column参数被设置为menu_order。它的意思是我们可以通过修改页面顺序来修正菜单的顺序问题:

1.通过后台管理(Manage)->页面(Pages)子面板来找到你想修改页面顺序的页面,然后点击修改(Edit)

2.页面顺序(Page Order)在底部右侧列设置(新版本为底部左侧设置——译者注)

3.点击+图标展开修改框,显示出页面顺序的文本框

4.在页面顺序的文本框中填入一个数字,比如下面例子中我们的排序:

1.My New Home Page

2.Recent Posts

3.About

低页面顺序的页面会优先出现在菜单内。页面如果页面顺序相同则按照字母顺序排列。我们的菜单会如下显示:

New Blogging Experiment Menu

默认情况下,如果你忘记修改它,新建的页面的顺序值为0。

获取关于Wp主题函数wp_list_pages更多的信息请参考:http://codex.wordpress.org/wp_list_pages

来自:http://www.hitigon.com/websitedev/wordpress/using-custom-page-as-homepage/

原文地址:Using a WordPress Page as your home page

February 9, 2010

wordpress架构结构图

Filed under: wordpress — conquercplusplus @ 7:05 am

template_hierarchy

February 2, 2010

如何获取三通道彩色图像的rgb值?

Filed under: Uncategorized — conquercplusplus @ 1:41 pm
 

怎么访问图像像素
(坐标是从0开始的,并且是相对图像原点的位置。图像原点或者是左上角 (img->origin=IPL_ORIGIN_TL) 或者是左下角 (img->origin=IPL_ORIGIN_BL) )

假设有 8-bit 1-通道的图像 I (IplImage* img):
I(x,y) ~ ((uchar*)(img->imageData + img->widthStep*y))[x]
假设有 8-bit 3-通道的图像 I (IplImage* img):
I(x,y)blue ~ ((uchar*)(img->imageData + img->widthStep*y))[x*3]
I(x,y)green ~ ((uchar*)(img->imageData + img->widthStep*y))[x*3+1]
I(x,y)red ~ ((uchar*)(img->imageData + img->widthStep*y))[x*3+2]

例如,给点 (100,100) 的亮度增加 30 ,那么可以这样做:
CvPoint pt = {100,100};
((uchar*)(img->imageData + img->widthStep*pt.y))[pt.x*3] += 30;
((uchar*)(img->imageData + img->widthStep*pt.y))[pt.x*3+1] += 30;
((uchar*)(img->imageData + img->widthStep*pt.y))[pt.x*3+2] += 30;

或者更高效地:
CvPoint pt = {100,100};
uchar* temp_ptr = &((uchar*)(img->imageData + img->widthStep*pt.y))[pt.x*3];
temp_ptr[0] += 30;
temp_ptr[1] += 30;
temp_ptr[2] += 30;
假设有 32-bit 浮点数, 1-通道 图像 I (IplImage* img):
I(x,y) ~ ((float*)(img->imageData + img->widthStep*y))[x]

现在,一般的情况下,假设有 N-通道,类型为 T 的图像:
I(x,y)c ~ ((T*)(img->imageData + img->widthStep*y))[x*N + c]

你可以使用宏 CV_IMAGE_ELEM( image_header, elemtype, y, x_Nc )
I(x,y)c ~ CV_IMAGE_ELEM( img, T, y, x*N + c )

也有针对各种图像(包括 4 通道图像)和矩阵的函数(cvGet2D, cvSet2D), 但是它们非常慢。

cannot convert parameter 1 from ‘CString’ to ‘const char *’

Filed under: C++, MFC — conquercplusplus @ 12:24 pm

cannot convert parameter 1 from ‘CString’ to ‘const char *’

处理如下,Character Set 改成 Not Set即可。

222

January 12, 2010

学习日本

Filed under: 网络文摘, 日本 — conquercplusplus @ 3:06 am

最近,一朋友孩子到东京留学,她刚进宿舍,就哭了,说没想日本生活如此差,哪儿比北京大城市。再吃日本饭,发现随便一份午餐,相当人民币三、四十块,跟国内比,内容却太简朴。于是,她死活非要回国,再不想在日本呆。

这些年,国人生活改善,笔者认识的人,不少搬进百米甚至两百米豪宅,而饮食早超越温饱。此外,中国还有很多傲人大手笔,如青藏铁路、磁悬浮列车等。还有,中国还创造实际城市高楼数量之最。的确,以笔者观察,国内大中城市普通居民生活,如单纯以住房面积、饮食因素看,中国人生活已赶上发达国家。这就难怪家庭较优越的孩子,初到东京,难免被东京的“简陋”震撼。

但是,就像我们不能拿国家总产值跟人家总产值比一样,也不能以自己家的生活跟日本平均生活比,当然更不能拿北京、上海等大城市跟人家县城、农村比。

以中日来看,至今两国人均GDP,尚有10倍差距,而这10倍之差,如要逾越,可能要花更多的力量。因为,这种差距,已非量的单纯扩大,不是单纯靠投资就可以。更多要在质上下功夫。从这个意义上讲,笔者以为,今后,学日本,对中国来说,意义更大。

今天,中国城市化比率不足50%,而发达国家城市化比率平均超过90%。中国今后经济增长空间,很大程度在于城市化。如何建大城市重要,如何管大城市更重要。跟欧洲、美国不同,日本城市空间密度较大。在这点上,中日城市具有相同特点。纵观日本城市化过程,没发生其他发达国家城市化过程中贫民窟问题。今后,大量农民将进入城市,因此,日本城市化经验,对今后中国,最值得参考。

记得,到日本后,我最大惊喜是日本的清洁。开始,我以为各个城市一定拥有强大的环卫力量,是“市政管理”的功劳,但后来发现,日本环卫工一是数量少,二是很少打扫街道。那为什么日本街道如此清洁?其中有两个原因,一是无人随地扔垃圾、吐痰,二是居民各扫门前。这看似简单的行为,却是表现发达与不发达的分野。

日本公交系统,值得学习。以东京 JR(日本铁路)新宿站为例,每天100万乘客经过,但井然有序。JR东京站是日本铁路枢纽,也看不到人员滞留,十分清洁。再如,尽管汽车人均1辆以上、道路狭窄,日本却少见严重交通堵塞。尽管汽车总量比中国多,但日本每年交通事故死亡人数仅为中国1/10。

这些年,日本经济似乎不景气,但以笔者观察,日本人实际生活,并没受影响。夜晚,东京的银座、新宿仍灯红酒绿。涩谷、原宿那些青春时尚圣地,仍人山人海。而日元高企,虽对日本出口不利,但日本主要企业,几乎早将基地移至国外,日元升高,对他们影响不很大。而且,日元升值,还让日本消费者以低廉价格享受全世界的产品。这就是说,日本国内不景气,并不等于日本企业不赚钱,只不过,日本人从单纯的制造者,变成投资者。现在,日资企业,仅在中国,就雇佣 1000万以上工人。日本上市公司,其收益,多数来自国外。对“制造大国”的中国,日本跨国公司战略,值得研究。

日本十分强调“做东西”。日本孩子,问他们将来职业取向,最想做的是“木工”,而女孩则想做“糕点师”、幼儿园教师。他们从小即培养动手兴趣、能力。当然,日本不论国家还是企业,最重视研究。很多中国研究者发现,日本人吃饭、穿衣撙节,但搞科学实验,却很“大手笔”,不吝惜。笔者有一友人,在日本某大企业研发部门供职。他们研究某项技术,就尽量申请专利,控制一项技术的上下游所有领域。如此,大企业靠一项技术垄断,可几十年不断获利。而中小企业相反,很多完全依赖高度的个人经验。这些企业并不申请专利,但每个工人以数十年实践经验,加工出的各种高精度零件,航天火箭也能用。在日本街道作坊里,还有很多工人靠身体经验“造东西”,而这种技术,其他国家无法简单模仿。

作为东方社会,日本很重视平等,个人收入差距不算大。例如日本公司总经理平均收入为3000万日元,仅是日本工薪族平均收入的5倍。在城市,不存在严格意义的富人区,平常感受不到贫富的差距。而日本富人多数比较低调,因为,在日本人看来,仅是“富”并不值得尊敬。而且,富人大多要承担更多的风险、责任。一般工薪族可以理解高收入层的不易。

日本人住宅面积,一般都较狭小。尽管私人空间较少,但可供利用的“公共”空间较多。大饭店、便利店以及车站厕所可供一般人使用。公共图书馆星罗棋布,十分便利。咖啡店很便宜,花200日元(15块人民币),可坐2、3小时。各种多功能公用会馆公演各种艺术节目。如笔者家附近有一家音乐厅,常有音乐学校师生表演,很多节目免费。

尽管中国人均GDP迅速提高,但要接近或赶上发达国家,还有很长的路要走。怎样走好这条路,邻国日本,仍有很多可资借鉴。

December 30, 2009

大海

Filed under: Uncategorized — conquercplusplus @ 3:39 am

もし この海を 歩けたのなら
どこまでもただ 歩いていくだろう
近づけはしない 幻だけど
今も君が见える

もし この海の どこかで君が
ひとりで俺を 待っているのなら
何もできずに 立ち尽くす俺
许せなくていい

波に游ばれ 転がり続ける 贝壳见つめて
「おまえも砂の粒になるまで 砕かれるだろう
运命(さだめ)なんだと 忘れて生きる それでいいのか」と
寻ねて泣いた 答えられずに
俺は ただ立ち尽くすだけ

もし この海が 见ていたのなら
嘘じゃないこと わかっているだろう
初めてだった あんな気持ちに
俺がなれるなんて

君の手を取り 决して放さず 歩いてゆけると
胸に抱きしめ 誓った日のこと 忘れないけど
守ればもっと 伤つけていたと 谁かに言って欲しい
でも寻ねても 答えない海 俺は ただ立ち尽くすだけ

如果大海能够 唤回曾经的爱 就让我用一生等待
如果深情往事 你已不在留恋 就让他随风漂流
如果大海能够 带走我的哀愁 就像带走每条河流
所有受过的伤 所有流过的泪
我的爱 请全部带走

中文翻译:

如果 能够漫步在这片大海 无论多远
或许 就只是这样走着吧 不向我kao近
虽然是个幻影 如今还是感觉能够看到你
如果 你在这片大海的某处 一个人孤独的等候着我
对于什么都不做 只能这样站着的我
你可以不必原谅这样的我
随波逐流 不停转动的贝壳
[你是否也会如此 直到变成一粒沙 不在乎自己的命运 这样生存下去 真的好吗]
你哭着问我 无法回答你的我 只能一直这样站着
如果 这片海能够看到 是否知道这不是谎言呢
第一次有那样的感觉 我居然有那样的感觉
牵起你的手 绝不会放开 希望能够一起走下去 拥你入怀中
许下誓言的那一天 我不会忘记
越是守护着 越容易受伤 希望有人告诉我
但是无论我怎么问 大海不会回答我 只能这样站着直到最后

如果大海能够 唤回曾经的爱 就让我用一生等待
如果深情往事 你已不在留恋 就让他随风漂流
如果大海能够 带走我的哀愁 就像带走每条河流
所有受过的伤 所有流过的泪
我的爱 请全部带走

November 9, 2009

latex 横并排两张图

Filed under: latex — conquercplusplus @ 5:17 am

\begin{figure}[htb]
\begin{tabular}{cc}
\begin{minipage}[t]{0.5\hsize}
\begin{center}
     \label{fig:sift-ex:a} %% label for first subfigure
    \includegraphics[width=3.5cm]{images/l-re-1009.eps}
    \caption{Tracking result and SIFT features in the left and right PTZ cameras.}
\end{center}
\end{minipage}
\begin{minipage}[t]{0.5\hsize}
\begin{center}
    \label{fig:sift-ex:b} %% label for second subfigure
    \includegraphics[width=3.5cm]{images/r-re-1009.eps}
  \caption{Tracking result and SIFT features in the left and right PTZ cameras.}
\end{center}
\end{minipage}
\end{tabular}
\end{figure}

横并排两张图,caption会自动换行

\begin{figure}
  \centering
  \subfigure[Tracking result and SIFT features in the left and right PTZ cameras.]{
   \label{fig:sift-ex:a} %% label for first subfigure
    \includegraphics[width=3.5cm]{images/l-re-1009.eps}}
  \subfigure[Tracking result and SIFT features in the left and right PTZ cameras.]{
    \label{fig:sift-ex:b} %% label for second subfigure
    \includegraphics[width=3.5cm]{images/r-re-1009.eps}}
  \caption{Two Subfigures}
  \label{fig:subfig} %% label for entire figure
\end{figure}

竖排两张图

\begin{figure}
  \centering
  \subfigure[Small Box with a Long Caption]{
    \label{fig:subfig:a} %% label for first subfigure
    \includegraphics[width=1.0in]{graphic.eps}}
  \hspace{1in}
  \subfigure[Big Box]{
    \label{fig:subfig:b} %% label for second subfigure
    \includegraphics[width=1.5in]{graphic.eps}}
  \caption{Two Subfigures}
  \label{fig:subfig} %% label for entire figure
\end{figure}
Older Posts »

Theme: WordPress Classic. Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.