获取wordpress插件页面中的当前页面ID

 lty燕_654 发布于 2023-01-18 15:30

我需要page id在循环外的WordPress插件页面中获取当前信息.我为获取最新信息而编写的代码page id在我的插件页面中.我尝试了很多代码,但是没有用

$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();

但它对我不起作用.

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

这也行不通.

当我尝试

     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()

当我打印:

global $wp_query;
print_r($wp_query);

然后结果是:

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.如果你知道如何解决这个问题,那么我需要你的支持.提前致谢.

2 个回答
  • get_the_ID(); or $post->ID; 返回Wordpress中的当前页面或帖子ID.

    但是你需要确保你的帖子保存在wordpress post表中.其他明智的你不能得到id,只是因为它不是wordpress数据库中的条目.

    如果它是一个静态页面,并且它不是wordpress帖子中的条目,那么,get_the_ID()没有返回任何内容.

    例如:get_the_ID()没有在post archive页面,wordpress后端的管理页面等中工作.

    因此,根据这个问题,您正在尝试获取作为后端插件设置页面或任何存档页面的页面的ID.

    UPDATE

    在wordpress中获取当前post 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();

    [建议此标记必须位于循环内.]

    看到这个

          function get_the_ID() {
                   $post = get_post();
                   return ! empty( $post ) ? $post->ID : false;
                    }
    

    即get_the_ID()返回当前$ post的id.

    (5) get_query_var('page_id')

    [如果我们使用漂亮的永久链接将无法工作]
    https://codex.wordpress.org/Function_Reference/get_query_var

    2023-01-18 15:33 回答
  • 您可以ID使用以下技术在循环外的当前页面中获取帖子:

    global $wp_query;
    $post_id = $wp_query->post->ID;
    
    $post = get_post( $post_id );
    $slug = $post->post_name;
    

    2023-01-18 15:33 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有