- 倘若自己把一些需要的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'); - 本文旨在让像我这样的 Wordpress 初入门的开发者快速体验怎么写出一个最简单能工作的插件。至于插件的工作原理就不太多说,但基本的还是要懂得,插件中会用 add_action() 或 add_filter() 方法去挂住一些事件,如显示标题、显示内容等事件,然后执行一个函数。
add_action() 意味着某件事情发生了,要做什么事情,add_filter() 意味着事情发生,并传来的数据可对数据进行处理。用 add_action() 还是 add_filter() 就看你实际需求了。
虽然刚开始就声明了不太想多讲插件的原理,但前面几句话却表明的差不多了。立即例子入手吧,比如我们来做一个在每篇文章内容后附加一句版权声明的话。 Read More - 由于当前技术仍偏向功能强化为主要思维,指令码趋向庞杂的结果,容易产生更多安全漏洞,且失去快速因应攻击调整架构的灵活性。
身 为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 - JavaScript 的成功让人津津乐道,为 Web 网页编写 JavaScript 代码已经是所有 Web 设计师的基本功,这门有趣的语言蕴藏着许多不为人熟知的东西,即使多年的 JavaScript 程序员,也未能完全吃透。本文从7个方面讲述 JavaScript 中那些你不很熟知但非常实用的技巧。
简略语句
JavaScript 可以使用简略语句快速创建对象和数组,比如下面的代码:
Read More - 作者:HonestQiao如果在你实际的应用之中,你确实需要高速数据更新的操作,那么我们认为你已经具备以下先决条件:
能够按照实际应用的需要而调整服务器
关于这句话,大家自己可以明白意思的,不明白的自己想一想,如果没有达到这个要求,你是否有必要高速数据更新的操作, 或者先看看最后的附加说明.先见的参考文档:
1. http://w.yi.org/ftp/FAPM/PHP/php_manual_zh/ref.shmop.html
说明: PHP功能, 共享内存功能函数, 此处用于PHP直接操作内存, 提供高速数据操作
开启: 编译PHP的时候,加上参数: -enable-shmop
附注: 这个准备工作, 非常简单 Read More启用php的共享内存:
1).windows下,php.ini中取消 ;extension=php_shmop.dll 这行的行首分号,加载shmop扩展。
2) .linux/unix下,重新编译php,加入--enable--shmop 选项。
Shared Memory 的函数解释如下:- shmop_close — Close shared memory block
- shmop_delete — Delete shared memory block
- shmop_open — Create or open shared memory block
- shmop_read — Read data from shared memory block
- shmop_size — Get size of shared memory block
- shmop_write — Write data into shared memory block Read More
MVC 模式在 Java 中表现的尤为出众,不光 Swing 是按照 MVC 来设计的,而且 Java 的 Web 框架也是 MVC1、MVC2 的。MVC 模式对于开发维护确有许多好处,所以 PHP 的框架,如 Zend、Symfony,PHP 的产品 Wordpress 和 Joomla 都应用了 MVC 模式。PHP 不像 Servlet 那样有成熟的规范,如 web.xml、servlet、filter 等,但变换着一些把式同样能实现出优雅的 MVC 模式。这里简单介绍一下 PHP 是如何实现 MVC 模式,参照了了 Zend 的实现,我觉得还有许多改进的地方。说明的时候会拿它的各部分与 Struts1 的 MVC 相比较。
在 HTTP 环境中的 MVC 模式一句话描述就是:控制器根据 URI,把请求转给相应的 Action,由 Action 调用模型方法处理或得到数据,再选择相应的视图呈现界面。用过 Struts1 的请保留一些 Struts1 的实现原理,现在来看 PHP 的实现方式。
Read More前面介绍的无论是泛型类还是泛型方法,基本上都是把定义的类型参数作为一个整体来操作,放到数组或取出来,顶多就是调用了一下 hashCode() 方法,因为这是 Java 的根对象拥有的方法。比如说一个泛型数组,要得到其中的最小元素:1package com.unmi; 2 3/** 4 * 泛型,类型变量的限定 5 * @author Unmi 6 */ 7public class ArrayAlg { 8 9 public static <T> T main(T[] a){ 10 if(a==null || a.length ==0){ 11 return null; 12 } 13 T smallest = a[0]; 14 for(int i=0;i<a.length;i++){ 15 if(smallest.compareTo(a[i])>0){ 16 smallest = a[i]; 17 } 18 } 19 20 return smallest; 21 } 22}
Read MoreJavaScript 是一款强大的广泛运用于现代Web站点及应用的脚本语言。作为一个技艺精湛的 Web 开发者,掌握JavaScript可以增强用户的使用体验,提供交互及富客户端等功能。
尽管JavaScript 的语法非常简单,但对于写程序而言仍然是困难重重,就是因为它的运行环境:基于Web浏览器。
以下您可以看到收集的8个实用的 JavaScript 测试及效验工具,它们都可以在不同环境下进行单元测试及校验测试您的脚本。
JSLint
JSLint是基于Web的验证JavaScript错误代码的工具。它拥有的功能及特定的设置来使用您的需求,自定义你的验证算法。 Read More