- 本文说明WP 对URL rewrite并生成当前请求的过程.
关于Query Vars这是WordPress全部代码中最重要的变量,所谓的query vars是一系列变量集合. WP通过解析URL设定query vars, 并通过分析query vars值决定显示那些文章,设定标志位等.所谓标志位是WP_Query类中一系列$is_xxx形式布尔成员变量,所有的is_xxx()形式template tag实际上都是返回$wp_query里对应成员变量值. 举例而言,如果当前页面是单篇文章, 则p这个Query Var(以下简称变量)值不为空.(在WP类里空的query var根本不存在,而WP_Query类里如果对应name的query var没有设置,$wp_query->query_vars['varname']被填充为空值), 如果当前为搜索页, s变量值则为搜索关键字. 如果p和page两个变量都不为空值, 则当前为单篇文章分页页面, 依次类推. Query Vars在WP类($wp)里根据WP_Rewrite里的rewrite规则生成, 在WP_Query($wp_query)类里这些变量被用来建立主循环. Read More - 有时候我们需要向 XSLT 中设定或传入参数或变量,比如用 XSLT 从 RSS http://www.blogjava.net/Unmi/rss 取出前面若干条记录,那么这个记录数就应该作声明为参数。
http://www.blogjava.net/Unmi/rss 的文档结构如下:
<rss>
<channel>
<item>
<title>写第一个 Wordpress 插件程序</title>
<link>http://www.blogjava.net/Unmi/archive/2010/04/27/319398.html</link>
<dc:creator>隔叶黄莺</dc:creator>
<author>隔叶黄莺</author>
<pubDate>Mon, 26 Apr 2010 17:06:00 GMT</pubDate>
..............................................
</item>
<item>
.................................................
基于上面的需求,假定要前 5 条记录,XSLT 可以写成如下(c:\\Unmi_Rss_List.xslt): Read More - 在用 XSLT 转换 XML 到其他格式时,不光是原数据搬到别处,还可能需要对数据进行一定的处理,比如一个标志位要 XSLT 转换为表义字符串(1->True; 0->False),或者日期类型格式的转换等等。所以这时候我们在 XSLT 中要用到函数来处理这些细节上的转换。
XSLT 含有超过 100 个内建的函数,XQuery 1.0、XPath 2.0 以及 XSLT 2.0 共享相同的函数库。
这些函数用于字符串值、数值、日期和时间比较、节点和 QName 操作、序列操作、逻辑值,等等。
关于 XSLT 的内置函数请参数:XSLT 函数参考手册 和 XPath、XQuery 以及 XSLT 函数。 Read More - 【原文地址】jQuery Intellisense in VS 2008
【原文发表日期】 Friday, November 21, 2008 2:07 AM
上个月,我在博客里宣布了微软将对jQuery提供支持。在过去的几个星期里,我们与jQuery开发团队合作,在Studio 2008 和 Visual Web Developer 2008 Express版本(免费的)中增加了很好的jQuery intellisense支持。现在这个支持可以下载使用了。在VS 2008中启用jQuery Intellisense的步骤
要在VS中启用jQuery的intellisense完成,你要遵循三个步骤: Read More - VS2008 在发布网站时,bin 目录里为所有 cs 生成的 dll 文件每次都是随机命名的,像这样子的 App_Web_g2dnx-qj.dll, App_Web_s9nor8mv.dll,这样对更新 Live 站点很不方便,因为动态库名变了,涉及到每一个 aspx 文件每次都重新更改了对库的引用声明:
<%@ page language="C#" autoeventwireup="true" inherits="_Default, App_Web_s9nor8mv" %>
即使有一个 cs 的小改动,由于生成的动态库名称不一样,造成所有的 aspx 文件都得重传一遍。如果能固定动态库的文件名,更新网站时就省事多了,只改了 cs 的话,重新生成 dll 文件,只需要替换这一个 dll 文件就 OK 啦。我们可以找到几种做法: Read More - 倘若自己把一些需要的widget直接写进WordPress侧边栏sidebar.php里,在打开网页时,会比在后台添加的widget速度要快一些。道理很简单,如果在后台添加那些widget, 相当于dynamic_sidebar,然后去get一些option之类的函数,会比直接写进sidebar.php里多一些查询和调用的过程。
而且,大家也发现了,在后台的提供的widget里并非都是你想要的。所以有时候自己写一些widget,还是蛮有趣的。
好比说,我现在想加一个友情链接(Blogroll)在侧边栏里,该怎么去写呢? 很简单,在模板的sidebar.php里加上:1<!--blogroll--> 2<div class="widget"> 3 <h2>友情链接</h2> 4 <ul> 5 <?php wp_list_bookmarks('orderby=rand&limit=10&categorize=0&title_li='); ?> 6 </ul> 7</div>
Read More - Wordpress 中可以用 Shortcode 来创建宏代码,并且是高度可定制的,例如,有 PHP 代码:
1// [bartag foo="foo-value"] 2function bartag_func($atts) { 3 extract(shortcode_atts(array( 4 'foo' => 'no foo', 5 'bar' => 'default bar', 6 ), $atts)); 7 8 return "foo = {$foo}"; 9} 10add_shortcode('bartag', 'bartag_func');
那么只要在你的 post 中输入,[bartag foo="foo-value"],显示该文章的时候此处就被 bartag_func() 函数替换为:foo = foo-value。来个更实用的,比如欲定义一个[unmi_blog] 的标签,定义代码写成如下:1// [unmi_blog] 2function unmi_blog_func($atts) { 3 return "<a href='http://unmi.cc'>隔叶黄莺 The Blog of Unmi</a>"; 4} 5add_shortcode('unmi_blog', 'unmi_blog_func');
那么在文章中的 [unmi_blog] 的会显示为:隔叶黄莺 Unmi Blog。
还能用 Shortcode 打照更强大的自定义标签,如 [YouTube id='1234'] 就显示 id=1234 的视频等等,只是 Shortcode 似乎又太局限了。在文中 http://codex.wordpress.org/Shortcode_API 详细介绍了 Shortcode 的用法,并且说在 the_content 显示的时候,Shortcode API 就会去解析已注册的 Shortcode,这就让 Shortcode 不能轻易的用在别处,不是在 post 里写 [unmi_blog] 将会原样显示出 [unmi_blog] 来,其实也就是在 Wordpress 系统里有:
add_filter('the_content', 'do_shortcode');
但是人是活的,那些代码原本就是人编写的,我们可以假以巧妙的 Hack 让 Shortcode 应用在别处。
1. Customer Field 中应用 Shortcode Parse Shortcodes in your Custom Fields
2. Sidebar 里的 Text Widget 中 Adding a Shortcode to a Sidebar Widget
3. 任意地方 $text = yourShortCodeFunction("[your shortcode tag here]");echo $text; 外大括号,里小括号参考: 1. Shortcode API1/*<?php wp_show_surveys(1);?>*/ 2function wp_show_survey($survey_id=''){ 3 $short_code = '[SURVEYS '.$survey_id . ']'; 4 $output = apply_filters('show_survey', $short_code); 5 echo $output; 6} 7 8add_filter('show_survey','do_shortcode'); 9 10function custom_show_survey($content=''){ 11 //echo "<script>alert(123)</script>"; 12 return $content; 13} 14 15//add_filter('show_survey','custom_show_survey'); - 由于当前技术仍偏向功能强化为主要思维,指令码趋向庞杂的结果,容易产生更多安全漏洞,且失去快速因应攻击调整架构的灵活性。
身 为JavaScript网路技术重要推手的雅虎(Yahoo!)架构设计师Douglas Crockford表示,现行网页开发技术思维仍偏重多媒体功能或浏览效能的提升,未来应以安全为第一优先。
Crockford 现为Yahoo!资深JavaScript架构师,负责YUI(Yahoo! User Interface)的架构设计,并且担任ECMA JavaScript 2.0技术委员会成员,为JavaScript开发社群大师级人物,此次受邀来台参加OSDC(Open Source Developer's Conference Taiwan)进行专题演讲,向国内开发者介绍ECMA JavaScript的发展。 Read More - 经常我们打开外国网站的时候出现乱码,又或者打开很多非英语的外国网站的时候,显示的都是口口口口口的字符,
WordPress程序是用的UTF-8,很多cms用的是GB2312。
● 为什么有这么多编码?
● UTF-8和GB2312有什么区别?
● 我们在国内做网站是用UTF-8编码格式还是GB2312编码格式好?一. 各种编码的来历
可能很多同学一直对字符的各种编码方式懵懵懂懂,根本搞不清为什么他们有这么多编码。 Read More - 作者:Klaus Komenda , 翻译:butwho
英文原文:Collection of Web Developer Tools, per Browser
原文发现:译言-Collection of Web Developer Tools for major browsers
中文译文:Web开发工具大集合——每个浏览器都有份的!
网站开发者的一大苦恼,就是有太多的浏览器要应付。幸亏世界上有一些聪明的人,能够研究出一大些方便编辑和调试网页代码的好工具。不过,要从不计其数的小工具里面找出合适的可真不容易。这篇文章列出了几个最好用的web开发工具,并指导你快速地激活、安装、使用他们。 下面是工具列表: Read More