wordpress 中的 get_the_* 和 the_* 模板标签有什么区别?

What is the difference between get_the_* and the_* template tags in wordpress?

提问人:Bir 提问时间:9/2/2014 更新时间:5/23/2022 访问量:6727

问:

我对模板标签感到困惑。我已经多次将这些用于我的主题,但我不够清楚何时使用以及何时使用。请您清楚地解释这两个概念。get_the_*the_*get_the_*the_*

wordpress主题

评论


答:

3赞 TeeDeJee 9/2/2014 #1

不同之处在于,您只能在循环中使用。但是您可以在内部使用或驱逐循环。在循环之外,您应该将post_id作为参数。the_*get_the*

例如,默认情况下,echo 是标题,并且只获取在 PHP 中使用它的标题。the_*get_the*

9赞 Matt Gibson 9/2/2014 #2

通常,和函数之间有两个关键区别。get_the_*the_*

  1. get_the_*方法本身不会回显任何内容。相反,它们返回您感兴趣的值,通常以字符串形式返回。例如,get_the_time() 不回显任何内容,并返回当前帖子发布时间的字符串表示形式。 方法直接输出相同的值,而不必回显;the_time() 不返回任何内容,但直接回显发布时间。the_*

  2. the_*方法通常被设计为在 Loop 内部使用,因此它们通常不采用参数来指定您要询问的帖子;例如,the_title() 不接受参数,因此只能作用于 Loop 中的“当前”帖子。在循环之外称呼它是没有意义的——它会因为哪个帖子获得标题?但是,get_the_title() 将帖子 ID 作为参数,因此您可以在任何地方使用它来获取任何帖子的标题,只要您有帖子的 ID。 (许多方法采用可选的帖子 ID 参数,如果它们在循环中使用,则默认返回当前帖子的值, 为方便起见。post_idget_the_

因为WordPress已经开发了这么多年,而且东西也逐渐被添加进来,所以这些都不是保证的规则,你会在这里和那里找到例外。您应该将此作为一般建议,并根据需要检查每个特定实例的文档。

评论

3赞 BoltClock 9/2/2014
此外,在大多数情况下,函数只不过是包装器。the_*()echo get_the_*()
0赞 Mohamed Elrashid 9/3/2017
你能告诉我这个答案与这个问题有什么关系吗 stackoverflow.com/q/46021668/4879683
0赞 PhiCato 5/23/2022 #3

还有更多的东西。我刚刚尝试了 the_content() 和 echo get_the_content(),这应该是同样的事情,但是..如果您添加过滤器('the_content'),它将不适用于 echo get_the_content(),但它适用于 the_content() 方法。