如何在WordPress中获取当前页面名称?

伯纳德

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

到目前为止,(我所看到的所有解决方案the_title()get_page()->post_nameget_post(),等)不工作,包含交条目的页面。他们都将返回最新博客条目的名称。

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


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

$wp_query->queried_object->post_name

这实际上是页面名称(子标签)的URL友好版本,这也是我一直在寻找的内容。已使用默认模板(二十进行了测试我真的不确定为什么下面给出的两个变量在我的网站上不起作用。感谢keatchprint_r()小费

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

AJJ

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

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

  • 尽管似乎没有记录在案,但$pagename仅在使用永久链接时才设置var。我猜这是因为如果您不使用它们,WordPress不需要页面插件,因此它不会进行设置。

  • $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;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章