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

时间:2015-09-29 06:02:11

标签: php wordpress

我想要wordpress中当前页面的页面ID。我知道get_the_ID()用于获取永久链接设置为默认值时的页面ID。但在我的情况下,永久链接设置是帖子名称,我想要page_id是否可能? 。如果是,那怎么样?

4 个答案:

答案 0 :(得分:3)

试试这个:

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

答案 1 :(得分:0)

你可以尝试这是你有页面名称

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

答案 2 :(得分:0)

get_the_ID()为您提供循环中帖子/页面的当前ID。 Wordpress在一个循环中加载页面或帖子,这就是为什么当你运行get_the_ID()时它会为你提供ID。现在该功能与永久链接无关。如果您没有处于任何循环中(例如,当您正在初始化wordpress时,您尝试运行该功能,那么您将无法获得您正在寻找的ID,因为该部分尚未集。

无论永久链接结构是什么,

get_the_ID()都可以在任何地方使用。我注意到的唯一一个案例就是给你一个除了当前页面或帖子以外的结果,当你已经处于循环其他那个wordpress默认的时候。在这种情况下,get_the_ID()将返回该循环中当前帖子ID的ID。您可以在codex中了解有关循环的更多信息。

现在,如果您仍然丢失了,您是否可以提供一个代码示例,以便您使用该功能并且无法获得您期望的结果?

答案 3 :(得分:0)

如果你真的想要,你可以使用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(&#39; about / us&#39;);