get_the_ID()函数不会在init hook函数中返回帖子ID

时间:2019-02-18 10:12:36

标签: wordpress

请考虑以下代码:

function mcqac_wp_enqueue_assets() {

    if (is_admin()) {

        wp_enqueue_script(
            'mcqac-js-admin', // Handle.
            PLUGIN_URL . 'build/main-admin.js',
            array( 'jquery' ), // Dependencies, defined above.
            filemtime( PLUGIN_PATH . 'build/main-admin.js' ), // Version: File modification time.
            true // Enqueue the script in the footer.
        );

        $mcqacAdminData = array();

        if (get_the_ID()) {
            $mcqacAdminData['options'] = get_post_meta(get_the_ID(), 'mcqac_options', true);
        }

        wp_localize_script('mcqac-js-admin', 'mcqacAdminData', $mcqacAdminData);
    }
}

add_action('init', 'mcqac_wp_enqueue_assets');

当我进入编辑帖子页面时,get_the_ID()不返回任何内容。好像init动作挂钩在发布查询之前被触发。

解决方案是什么?

1 个答案:

答案 0 :(得分:0)

问题解决了admin_enqueue_scripts动作钩子而不是init动作钩子。并声明global $post来从该变量获取帖子ID。