如何通过插件获取当前页面ID

时间:2017-05-08 作者:Ayan Chakraborty

这是我的密码。

/*
    Plugin Name: 
    Plugin URI:  
    Description: 
    Version:     
    Author:      
    Author URI:  
    License:     
    License URI: 
    Text Domain: 
    Domain Path: 
    */

if ( ! defined( \'ABSPATH\' ) ) {
    exit;
}

$page_object = get_queried_object();
var_dump($page_object);

$page_id = get_queried_object_id();
echo $page_id;
我正在获取>>致命错误:对C:\\wamp\\www\\wordpress\\wp includes\\query中的非对象调用成员函数get\\u queryed\\u object()。php在线45

1 个回复
最合适的回答,由SO网友:Dave Romsey 整理而成

看看Plugin API/Action Reference, 特别是在典型请求期间运行的部分操作。

在WordPress中,您需要将代码挂接到各个特定的执行点,否则会立即执行,这通常不是期望的结果。

您发布的代码将在插件加载后立即执行,这将发生在plugins_loaded 钩例如,在加载页面的流程中,要获得帖子/页面ID还为时过早。

下面,我将您的代码包装在一个连接到template_redirect 钩子,现在它生成了预期的结果。

add_action( \'template_redirect\', \'wpse_inspect_page_id\' );
function wpse_inspect_page_id() {
    $page_object = get_queried_object();
    var_dump($page_object);

    $page_id = get_queried_object_id();
    echo $page_id;
}

结束

相关推荐