gpt4 book ai didi

wordpress - 如何获取 WordPress 中当前页面的名称?

转载 作者:行者123 更新时间:2023-12-03 04:19:40 24 4
gpt4 key购买 nike

什么 PHP 代码可用于检索 WordPress 主题中的当前页面名称?

到目前为止我见过的所有解决方案:

  • the_title()
  • get_page()->post_name
  • get_post()
  • 等等

但这些不适用于包含帖子条目的页面。它们都会返回最新博客条目的名称。

换句话说,假设您在 WordPress 中创建了一个名为“我的新闻”的页面。该页面被设置为“帖子页面”。在页面上添加几个帖子。现在,可以使用什么 API 来检索字符串“my-news”而不是最新帖子的名称?

<小时/>

我发现以下变量似乎有效。

$wp_query->queried_object->post_name

这实际上是页面名称 (slug) 的 URL 友好版本,这也是我一直在寻找的。这是使用默认模板 ( Twenty Ten ) 进行测试的。我真的不确定为什么下面给出的两个变量在我的网站上不起作用。感谢keatch for the print_r() tip .

现在,为什么这些信息隐藏得这么深?

最佳答案

WordPress 全局变量 $pagename 应该可供您使用。我刚刚尝试了您指定的相同设置。

$pagename 在文件 wp-includes/theme.php 中的函数 get_page_template() 中定义,当然它是在页面主题文件之前调用的已被解析,因此它可以在页面模板内的任何位置使用。

  • 虽然似乎没有记录,但仅当您使用永久链接时才会设置 $pagename var。我想这是因为如果您不使用它们,WordPress 就不需要页面 slug,因此不会对其进行设置。

  • 如果您将该页面用作静态首页,则不会设置$pagename

  • 这是/wp-includes/theme.php 中的代码,它使用您在无法设置 $pagename 时指出的解决方案:

--

if ( !$pagename && $id > 0 ) {
// If a static page is set as the front page, $pagename will not be set. Retrieve it from the queried object
$post = $wp_query->get_queried_object();
$pagename = $post->post_name;
}

关于wordpress - 如何获取 WordPress 中当前页面的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4837006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com