为什么有些核心函数得到wp_而其他却没有?有什么规定?


15

为什么在某些WP代码函数前面加上前缀wp_?例如:wp_insert_post()vs。update_post_meta()

Answers:


8

这不是一个令人印象深刻的答案,而是- 没有

get_后缀通常表示函数返回某些内容,the_该函数回显某些内容。

wp_ 并不具有技术意义,并且命名的不一致是由于许多开发人员参与并且缺乏统一的动力(向前推进被认为比对旧事物进行大整理以使其更整洁更重要)。


1
我(有点)理解不纠正当前情况的原因;但是,我对缺乏定义某个时间点感到困惑,因为从该时间点开始,将强制执行已定义的函数命名法。我想,如意算盘。
Chip Bennett

谢谢拉斯特。奥托证实了这一点。叹。我希望...我和Chip在一起!
Tom Auger

2

WordPress曾经是并且是由许多不同的人编写的。补丁在wordpress跟踪中讨论,提交或分配跟踪票的人都可以发布补丁。如果补丁被接受并转移到即将发布的版本的核心中,那么它就在那里。因此,有时函数,vars等获得前缀,而其他时候则没有。它依赖于参与的开发人员。


2

wp_前缀通常被添加到避免命名冲突有:

  • 本机PHP函数,例如get_current_user()
  • 较早/已弃用的WP函数,例如get_archives()
  • 第三方库?

1

我一直认为区别在于-除了基本的模板标记之外,这些模板标记通常仅具有最简单的描述性名称:

  1. 开头的函数wp_通常是高级公共API函数,几乎可以保证它们始终存在并保持前向兼容性。
  2. 没有该前缀的函数是内部函数,除非您知道自己在做什么,否则不要混入其他东西。

我不知道这是否是故意的。就像其他两个答案所说的那样,它并不一致。如果我的分类为真,那么您的例子update_post_meta就是一个完美的例子,看起来应该有一个wp_前缀。但是WordPress中有足够多的深层遗留代码,可以阻止任何使任何命名约定有意义的尝试。


哈哈。我实际上以为是完全相反的-wp_函数更多是内部的(您可以使用,但实际上是内部的),而其他函数更公开。虽然听起来很可悲,但也许Rarst等人。是正确的,没有理由。
Tom Auger

2
为了记录起见,真正的内部函数仅以下划线开头,_*但实际上并没有那么多,实际上,它们也不是绝对仅内部函数。
拉斯特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.