繁体   English   中英

如果永久链接为帖子名称,如何在wordpress中获取页面ID

[英]how to get page id in wordpress if Permalink is Post name

我想要wordpress中当前页面的页面ID。 我知道get_the_ID()用于在永久链接设置为Default时获取页面ID。 但是在我的情况下,“永久链接设置”是“ 帖子名称” ,我想要page_id吗? 如果是,那怎么办?

尝试这个:

 <?php
global $post;
echo "pageid: ".$post->ID;
?>

您可以尝试此操作,因为您拥有页面名称

function get_page_id($page_name){
    global $wpdb;
    $page_name = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_name = '".$page_name."'");
    return $page_name;
}

get_the_ID()为您提供循环中帖子/页面的当前ID。 Wordpress在循环中加载页面或帖子,这就是为什么当您运行get_the_ID()时会给您ID。 现在,该功能与永久链接无关。 如果您不在任何循环中(例如,您正在尝试在初始化wordpress时运行该循环,那么您将不会得到想要的ID,因为该部分尚未设置。

无论永久链接结构如何,get_the_ID()均可在任何地方使用。 我注意到它给您除当前页面或帖子以外的结果的唯一情况是,当您已经处于除wordpress默认值之外的循环中时。 在这种情况下,get_the_ID()将返回该循环中当前帖子ID的ID。 您可以了解有关编解码器中循环的更多信息。

现在,如果您仍然迷路,是否可以在使用该函数的地方提供代码示例,而不会得到预期的结果?

如果确实需要,可以使用get_page_by_title()

完整参数为

get_page_by_title( $page_title, $output = OBJECT, $post_type = 'page' );

所以这样使用

$custom_post = get_page_by_title( 'pagename', OBJECT, 'your_custom_post_type' );
$post   = get_page_by_title( 'pagename', OBJECT, 'post' );

只是为了完成答案,还有类似的

get_page_by_path()

$ page = get_page_by_path('about / us');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM