站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
▼
建站程序
开发
服务器
办公软件
开发教程
▼
服务器教程
软件使用教程
运营教程
热门电子书
▼
CSS教程
WordPress教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
热点词条
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
WordPress:WordPress Coding Standards
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
<span style="border:1px solid #000; text-align:center; float:right; padding:6px;"><strong>导航:</strong> [[WordPress:WordPress文档|上一级]] | [[WordPress]] | {{Template:WordPress导航}}</span> <div style="clear:both;"></div> 一些WordPress代码结构遗留下来的部分对于PHP的开发在类型上是不一致的。 WordPress致力于通过帮助用户维护代码一致性,维持整洁易读的程度来逐渐改变这点。 编写WordPress 代码的时候,要记得以下几点,不论是核心程序代码, [[WordPress:Writing a Plugin|插件]],或者是 [[WordPress:Theme Development|WordPress 主题]]。指导方针与 [http://pear.php.net/manual/en/standards.php Pear 标准]相似,但是在某些关键地方也有不同。 也可以参见[http://comox.textdrive.com/pipermail/wp-hackers/2006-July/006930.html wp-hackers 列表中的这个文章] 还有一篇关于被提议的[[WordPress:Inline Documentation|内嵌文档]]标准的页面. ;单引号和双引号 :适当的时候使用单引号和双引号。如果你不能评测字符串中的东西的时候,使用单引号。字符串无法摆脱HTML 引号,因为你只可以改变你的引用方式,如: <pre><nowiki>echo "<a href='$link' title='$linktitle'>$linkname</a>"; echo '<a href="/static/link" title="Yeah yeah!">Link name</a>';</nowiki></pre> :唯一的例外是JavaScript,它有时要求双或者单引号。属性中的文本必须通过<tt>attribute_escape()</tt>处理,这样单或者双引号不需要结束属性的值,也不会导致XHTML 不合法而导致安全问题。 ;缩进 : 缩进通常反映出逻辑结构。使用'''真正的制表符''' 而'''不要使用空格''',这通过客户端允许得到最大的适应性。 :例外: 如果代码排列整齐了会使你的代码块更易读的话,你可以做一些简单的制表符缩进,然后把不同的地方用空格标记: <pre><nowiki> [tab]$foo = 'somevalue'; [tab]$foo2 = 'somevalue2'; [tab]$foo34 = 'somevalue3'; [tab]$foo5 = 'somevalue4'; </nowiki></pre> :注意制表符如何用来做简单的缩进,和空格只是用来让每行排列整齐。 ;Brace 格式 : Brace应该用于多行代码块: <pre><nowiki> if ( condition ) { action1(); action2(); } elseif ( condition2 && condition3 ) { action3(); action4(); } else { defaultaction(); } </nowiki></pre> :此外如果你有特别长的代码块,考虑是否可以分成两个或者更多的短些的块或者函数。如果你认为这种长代码不可避免,请在末尾做一个简单的注释,这样人们可以在看过之后知道结束括号结束了什么。 -- 尤其是适合逻辑块,超过35行的代码,当然任何代码都是可以做出注释的。 :单行程序块可以省略大括号: <pre><nowiki> if ( condition ) action1(); elseif ( condition2 ) action2(); else action3(); </nowiki></pre> ;include_once vs. require_once :了解 [http://us3.php.net/manual/en/function.include-once.php <tt>include_once</tt>] 和 [http://us3.php.net/manual/en/function.require-once.php <tt>require_once</tt>]之间的不同,适当的使用它们。引用[http://us3.php.net/manual/en/function.include.php关于include()的php手册页面]: "这两种结构除了在如何处理故障方面,其他的都是一样的。当require() 导致一个致命错误的时候,include() 生成一个警告。" 致命错误停止代码执行。 ;常规表达: Perl 兼容常规表达(PCRE, <tt>preg_</tt> 函数)应该被优先用在 它们的POSIX 副本. ;不要使用简写PHP :'''不要使用简写PHP 开始标签''' (<tt><? ... ?></tt> 或者 <tt><?=$var?></tt>)。要一直使用完全的PHP 标签 (<tt><?php ... ?></tt>). '''确认关闭PHP标签后移除空白空格。''' ;空格用法 :在逗号后面要加一个空格,在逻辑和分配算子两边也要加上空格如 <tt>"x == 23", "foo && bar", "array( 1, 2, 3 )",</tt> , 同样在打开和关闭<tt>if</tt>, <tt>elseif</tt>, <tt>foreach</tt>, <tt>for</tt> 和 <tt>switch</tt> 语句的括号两边也加上空格 (如<tt>foreach ( $foo as $bar ) { ...</tt>). 定义一个函数的时候,这样做: <tt>function myfunction( $param1 = 'foo', $param2 = 'bar' ) {</tt> 在调用函数的时候,这样做: <tt>myfunction( $param1, funcparam( $param2 ) );</tt> ;格式化 SQL 声明 :如果十分复杂而不能辨别的话,当格式化SQL声明的时候你可以把它分成几行,然后缩进。多数声明在一行内运行良好。声明的SQL部分如<tt>UPDATE</tt> 或者 <tt>WHERE</tt>一定要大写。 :升级数据库的函数尽量减少参数应该盼望参数在传递过程中减少丢失。溢出应该在尽可能接近请求的时候完成。最适合的时候是正在使用 <tt>$wpdb->prepare()</tt>时。 :<tt>$wpdb->prepare()</tt>是一个方法,为SQL请求控制溢出,引用和int-casting。它使用一个格式化的<tt>sprintf()</tt>格式的的子集。如 : <pre><nowiki> $var = "dangerous'"; // raw data that may or may not need to be escaped $id = some_foo_number(); // data we expect to be an integer, but we're not certain $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET post_title = %s WHERE ID = %d", $var, $id ) ); </nowiki></pre> : <tt>%s</tt> 是用于字符串占位符的,%d是用于整型占位符。注意它们没有被'引用'! <tt>$wpdb->prepare()</tt>会照应好溢出和引用的。这样的好处就是我们不需要记住手动使用<tt>$wpdb->escape()</tt>,这样一眼就能看出是否有什么溢出,因为它在请求发生的那一刻就起作用了。 ;数据库请求 :避免直接改动数据库。如果有一个定义过的函数可以得到你想要的数据,就用它,数据库提取(使用函数代替请求)对保证你的代码的向前兼容性有帮助,这样结果在内存中找到后,它可以用数倍更快的速度。如果你必须改动数据库的话,通过发布信息到[[WordPress:Mailing_Lists#Hackers|wp-hackers 邮件列表]]联系几个开发人员。他们可能会考虑为下一个WordPress 版本开发一个新的函数来达到你想要的功能。 ;变量, 函数和算子:如果你不使用变量,就不要创建。这包括请求在内。于数据库交换数据时使用函数[[WordPress:Function_Reference/wpdb Class|wpdb类]]。 :[[WordPress:Wikipedia:Ternary_operation|三重]]算子是可以的,声明为真时要记得测试,否则它会混淆。 <pre><nowiki>// GOOD example: // (if statement is true) ? (do this) : (if false, do this); $musictype = ('jazz' == $music) ? 'cool' : 'blah'; </nowiki> </pre> :另外一个重点是在上边的例子中,当做逻辑比较的时候,要把变量放到右边,象上边那样。如果你忘记了等号,它会出现一个解析错误而不是判断为真或者停止声明。它并不占用过多的时间,所以这如果避免了一个错误,是值得的。 :单独行为了简洁省略括号 <pre><nowiki> if ( condition ) action1(); elseif ( condition2 ) action2(); else action3(); </nowiki></pre>
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)
本页使用的模板:
模板:WordPress导航
(
查看源代码
)(受保护)