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

问题描述 投票:0回答:3

我对

get_the_*
the_*
模板标签感到困惑。我已经在我的主题中使用了很多次,但我不太清楚何时使用
get_the_*
以及何时使用
the_*
。请您清楚地解释这两个概念好吗?

php wordpress wordpress-theming
3个回答
9
投票

通常,

get_the_*
the_*
函数之间有两个主要区别。

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

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

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


3
投票

不同之处在于,您只能在循环内使用

the_*
。但是
get_the*
您可以在循环内部使用或排除循环。在循环之外,您应该将 post_id 作为参数给出。

默认情况下

the_*
echo 是标题,
get_the*
只是获取在 PHP 中使用它的标题。


0
投票

还有更多的事情要做。我刚刚尝试了 the_content() 和 echo get_the_content() ,它们应该是相同的,但是..如果添加过滤器('the_content'),它将无法与 echo get_the_content() 一起使用,但它可以与 the_content() 方法一起使用。

© www.soinside.com 2019 - 2024. All rights reserved.