哪些PHP代码可用于检索WordPress主题中的当前页面名称?
到目前为止,(我所看到的所有解决方案the_title()
,get_page()->post_name
,get_post()
,等)不工作,包含交条目的页面。他们都将返回最新博客条目的名称。
换句话说,假设您在WordPress中创建了一个名为“我的新闻”的页面。该页面被设置为“发布页面”。在页面上添加几个帖子。现在,可以使用什么API来检索字符串“ my-news”而不是最新帖子的名称?
我发现以下似乎有效的变量。
$wp_query->queried_object->post_name
这实际上是页面名称(子标签)的URL友好版本,这也是我一直在寻找的内容。已使用默认模板(二十)进行了测试。我真的不确定为什么下面给出的两个变量在我的网站上不起作用。感谢keatch的print_r()
小费。
现在,为什么这些信息隐藏得如此深?
WordPress全局变量$pagename
应该对您可用。我刚尝试使用您指定的相同设置。
$pagename
是在函数内部的wp-includes / theme.php文件中定义的,该函数get_page_template()
当然是在解析页面主题文件之前调用的,因此可以在页面模板内的任何位置使用。
尽管似乎没有记录在案,但$pagename
仅在使用永久链接时才设置var。我猜这是因为如果您不使用它们,WordPress不需要页面插件,因此它不会进行设置。
$pagename
如果将该页面用作静态首页,则不会设置。
$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] 删除。
我来说两句