首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >获取wordpress插件页面中的当前页面id

获取wordpress插件页面中的当前页面id
EN

Stack Overflow用户
提问于 2014-03-12 20:07:16
回答 7查看 67.8K关注 0票数 25

我需要在循环之外获取WordPress插件页面中的当前page id。我写的获取最新page id的代码在我的插件页面中。我试了很多代码,但都不起作用

代码语言:javascript
复制
$page_object = get_queried_object();
$page_id     = get_queried_object_id();


 // "Dirty" pre 3.1
 global $wp_query;

$page_object = $wp_query->get_queried_object();
$page_id     = $wp_query->get_queried_object_id();

但它对我不起作用。

代码语言:javascript
复制
  global $post;
  echo "pageid: ".$post->ID;

这也不起作用。

当我尝试的时候

代码语言:javascript
复制
     global $wp_query;
     $post_obj = $wp_query->get_queried_object();
     $Page_ID = $post_obj->ID;
     echo $Page_ID;

然后会出现一条错误消息

致命错误:在第876行对H:\xampp\htdocs\wordpress\wp-content\plugins\wpk\wpk.php中的非对象调用成员函数get_queried_object()

当我打印时:

代码语言:javascript
复制
global $wp_query;
print_r($wp_query);

那么结果是:

代码语言:javascript
复制
WP_Query Object
(
    [query] => 
    [query_vars] => Array
        (
        )

    [tax_query] => 
    [meta_query] => 
    [date_query] => 
    [queried_object] => 
    [queried_object_id] => 
    [request] => 
    [posts] => 
    [post_count] => 0
    [current_post] => -1
    [in_the_loop] => 
    [post] => 
    [comments] => 
    [comment_count] => 0
    [current_comment] => -1
    [comment] => 
    [found_posts] => 0
    [max_num_pages] => 0
    [max_num_comment_pages] => 0
    [is_single] => 
    [is_preview] => 
    [is_page] => 
    [is_archive] => 
    [is_date] => 
    [is_year] => 
    [is_month] => 
    [is_day] => 
    [is_time] => 
    [is_author] => 
    [is_category] => 
    [is_tag] => 
    [is_tax] => 
    [is_search] => 
    [is_feed] => 
    [is_comment_feed] => 
    [is_trackback] => 
    [is_home] => 
    [is_404] => 
    [is_comments_popup] => 
    [is_paged] => 
    [is_admin] => 
    [is_attachment] => 
    [is_singular] => 
    [is_robots] => 
    [is_posts_page] => 
    [is_post_type_archive] => 
    [query_vars_hash] => 
    [query_vars_changed] => 1
    [thumbnails_cached] => 
    [stopwords:WP_Query:private] => 
)

我不知道如何解决这个问题,如何获得当前的page id.If你知道如何解决这个问题,那么我需要你的支持。提前谢谢。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2014-12-01 18:40:58

get_the_ID(); or $post->ID;在Wordpress中返回当前页面或帖子的id。

,但您需要确保您的帖子保存在wordpress帖子表中。否则你不能获取id,仅仅因为它不是wordpress数据库中的一个条目。

如果它是一个静态页面,并且不是wordpress post中的条目,那么get_the_ID()不会返回任何内容。

例如:get_the_ID()不能在存档后页面、wordpress后端的管理页面等中工作。

So as per 您正在尝试获取后端插件设置页面或任何归档页面的id。

更新

获取wordpress中当前帖子id的

方法

(1) global $post; $post->ID();

(2) global $wp_query; $post_id = $wp_query->get_queried_object_id();

(3) global $wp_query; $post_id = $wp_query->post->ID;

(4) get_the_ID();

建议此标记必须位于循环内。

看看这个

代码语言:javascript
复制
      function get_the_ID() {
               $post = get_post();
               return ! empty( $post ) ? $post->ID : false;
                }

ie get_the_ID()返回当前$post的id。

(5) get_query_var('page_id')

如果我们使用pretty permalink,它将不会工作

https://codex.wordpress.org/Function_Reference/get_query_var

票数 37
EN

Stack Overflow用户

发布于 2014-03-12 20:20:15

您可以使用以下技术在循环外部获取当前页面中的帖子的ID

代码语言:javascript
复制
global $wp_query;
$post_id = $wp_query->post->ID;

$post = get_post( $post_id );
$slug = $post->post_name;
票数 14
EN

Stack Overflow用户

发布于 2014-03-12 20:29:42

尝试使用以下代码来获取页面id

代码语言:javascript
复制
get_the_ID();
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22351038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档