我们完全具有编码标准的原因(不仅限于WordPress)是为了为从事项目的程序员创建一个熟悉的环境 。 WordPress特别涵盖了各种各样的产品。 从核心本身到主题和插件 ,有很多值得一看的东西,也有很多值得混淆的地方。
如果每个人都以相同的方式设置代码格式,使用注释,使用相同的文档样式等,那么一起工作就变得容易得多,加入新项目的学习曲线也不会那么艰难。
WordPress中对内聚性的需求因代码库所在的状态而被放大。 WordPress不遵循严格的面向对象方法,也不使用MVC模式。 毫无例外地遵循OOP和MVC准则的项目(例如Laravel )由于结构而具有一致性和最佳实践。
不幸的是,WordPress可以进行意大利面条式编码,也就是您想做的事 。 仅仅因为采用错误代码的产品可能在表面上同样起作用,就很难实施最佳实践。
通过遵循WordPress编码标准,您可以了解有关WordPress编码方式的一些知识,创建更多与WordPress兼容的产品。 向社区展示您的关心,并纠缠高质量代码。
有关标准的一些注意事项
标准没有定义对与错。 您可能不同意规则,例如,即使不需要,也应始终使用大括号 。 WordPress编码标准的目的不是确定您是对还是错,而是确定在WordPress中应如何做。
这些标准尚待辩论。 使用标准并不是反对您不喜欢的缩进样式的立场。 如果编码标准中包含某些内容,则可以这样做。 WordPress开发人员会为此而爱上您! 也就是说,如果您不同意其中的某些内容,请提高您的声音并让人们知道。 总是可以做得更好,但是只有在标准允许的情况下,才应该更改编码风格。
保持肛门保持一致 。 如果您处于项目的最后10%,并且刚刚发现对类使用了错误的命名约定,请不要中途切换。 以我个人的观点,我宁愿阅读一贯不正确的东西,也不愿阅读有时是正确的,有时不是的东西。 您始终可以编写脚本来一次性更改内容,或者最后阅读您的代码。
遵循标准很难 ! 将大括号放在与函数相同的行上,而不是在下面的行上非常容易,即使您以前习惯按回车键也是如此。 但是,当您需要考虑100条小规则时,整个过程就容易出错。 尽管我对遵循标准持强硬立场,但我对犯错也同样感到内gui。 归根结底,错误的缩进并不是不可挽回的罪过。 尽力遵守所有规则,您将及时了解所有内容。
WordPress编码标准
目前,WordPress有四个指南 ,每个使用的主要语言都有一个指南 :PHP,HTML,Javascript和CSS。 它们构成了“ 核心贡献者手册 ”这一更大知识体系的一部分。 经历所有过程将花费一些时间,因此我重点介绍了四种语言的片段,我经常看到人们在弄错。
PHP
PHP是WordPress的主要语言,并且是一种松散类型的语言,这使得它很容易进行监管。
支撑样式
起始括号应始终放在行尾。 相关语句应与上一个右括号放在同一行。 最好用一个代码示例来演示:
if ( condition ) {
// Do Something
} elseif ( condition ) {
// Do Something
} else {
// Do Something
}
大量使用空间
我不喜欢压缩代码(视力不好),所以我特别喜欢执行这一代码。 在逗号 , 逻辑 运算符 , 比较运算符 , 字符串 运算符和赋值运算符的两边, 如果在if , elseif , for , foreach和switch语句之后放置空格。
说不应该在何处添加空格更容易! 唯一不应该添加空格的时间是在类型转换或引用数组时 。
数组的键是变量 ,在这种情况下,请使用空格。 此示例应明确说明:
function my_function( $complete_array = null, $key_1 = 4, $key_2 = 'bar' ) {
if ( null == $complete_array ) {
$final_array = $complete_array;
} else {
$key_1 = (integer) $key_1;
$final_array[0] = 'this';
$final_array[ $key_1 ] = 'is';
$final_array[ $key_2 ] = 'an';
$final_array['last'] = 'example';
}
return $final_array;
}
命名约定
这可能很难适应,特别是如果您来自不同的环境。 简而言之:
- 变量名应全部小写 ,单词之间用下划线分隔
- 类名应使用下划线分隔的大写单词 。 首 字母 缩写词应全部大写
- 常数应全部为大写 ,并带有下划线
- 文件名应全部小写 ,并用破折号分隔
尤达条件
以不同于您惯常的方式编写条件可以防止解析错误。 看起来有点怪异,但它是更好的代码。
if ( 'Daniel' === $name ) {
echo 'Write article you will';
}
HTML
HTML没有太多与之关联的规则,我可以想出很多办法使事情更具模块化。 编写HTML时,您只需要知道以下五个规则:
- 您的代码必须根据W3C验证器进行验证 。
- 自闭合HTML标记必须在正斜杠前仅保留一个空格(这是我个人讨厌的一个空格,但这是W3C规范,而不仅仅是WordPress的讽刺意味)
- 属性和标签必须全部小写。 唯一的例外是当属性值供人类使用时,在这种情况下应自然键入。
- 所有属性都必须有一个值,并且必须用引号引起来(写
<input disabled>
不正确) - 缩进应使用制表符实现,并应遵循逻辑结构。
CSS
CSS是另一种松散类型的语言,因此这里也有很多工作要做。 即便如此,这些标准对于编码人员来说还是很容易的。
选择器
选择器应具有必要的限定条件,可读性强,小写且用短划线隔开的单词,并且属性选择器应使用双引号。 这是一个简洁的示例:
input[type="text"],
input[type="password"],
.name-field {
background: #f1f1f1;
}
财产令
这些标准认识到这里需要一些个人空间,因为它们没有为CSS规则规定特定的顺序。 他们说的是,你应该遵循的语义结构是有道理的。 按属性之间的关系对属性进行分组或按字母顺序对属性进行分组, 只是不要将它们随机写出来 。
造成随机性的最大原因是“哦,我还需要添加一个边距”,然后继续将其添加到底部。 花费额外的0.3秒,然后将规则添加到逻辑位置。
- 显示
- 定位
- 箱型
- 颜色和版式
- 其他
.profile-modal {
display: block;
position:absolute;
left:100px;
top:90px;
background: #ff9900;
color: #fff;
}
值格式
这是我特别讨厌看到不一致之处的地方。 如果您不遵循准则,那总比有时在值之前看到一个空格要好。 有时使用速记,有时不使用; 有时使用0值上的单位,有时不使用等。
值格式化很复杂,但是通过实践自然可以实现 。 查看法典中有关格式化值的确切指南。
Java脚本
以我的经验,JavaScript最容易遍历整个地方。 虽然许多开发人员都知道大量的Javascript,但后来却逐渐学习HTML,CSS和PHP。 当您刚开始使用一种新语言时,您会犯更多的错误,并且如果这些错误不会导致致命的错误,它们可能会根深蒂固。
在许多情况下,标准都提到了线路限制或“如果线路不太长”。 这是指jQuery样式指南 ,该样式 对line施加了100个字符的限制 。 WordPress指南基于jQuery指南,因此最好也阅读一下。
分号
这是最简单的规则,但经常被忽略。 永远不要因为要使用代码而省略分号。 太草率了。
缩进
制表符应始终用于缩进。 即使整个文件的内容包含在一个文件中,您也应缩进闭包的内容。 我不知道为什么,但是即使在我未阅读标准之前,隐蔽的顶级闭包仍然困扰着我。
断线
断开长字符串时,请始终在操作符之后断开行, 不要让变量挂在上面 。 乍看之下,这很明显,行已断开,您并不仅仅是忘记了分号。
另外,如果条件很长,请将其分成多行并在其前面添加一个额外的选项卡。 这对我的眼睛看起来很奇怪,但是在状况和身体之间增加的分隔非常明显。
if ( firstCondition() && secondCondition() &&
thirdCondition() ) {
var html = 'This line consists of ' + n + 'words, so it should be broken down after ' +
'an operator';
}
jQuery迭代
根据标准,jQuery迭代(jQuery.each())
仅应在jQuery对象上使用。 您应使用basic for , for / in , while循环在Javascript中迭代其他集合。
结论
有很多要注意和跟踪的地方,没有人可以一次性应用所有这些方法。 您应该使代码尽可能接近标准,并严格遵循它们。
在我看来, 一致性是最重要的规则 。 始终如一地执行错误操作比中途切换要好。 对于格式设置惯例尤其如此,因为它们不会影响代码的功能,并且在大多数情况下可以在以后轻松进行批量更改 。
您是否讨厌编码标准的内容,是否认为应该添加一些内容? 让我们在评论中知道!
翻译自: https://www.hongkiat.com/blog/wordpress-coding-standard/