wordpress - get_the_ID() 函数在 init 钩子函数中不返回帖子 ID
问题描述
请考虑代码:
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
在发布查询之前触发了动作挂钩。
解决办法是什么?
解决方案
问题修复了admin_enqueue_scripts
动作挂钩而不是init
动作挂钩。并且还声明global $post
从这个变量中获取帖子 ID。
推荐阅读
- laravel - 使用旧版本 laravel 创建新项目时出错。我该怎么办?
- python - TF-Agents 错误:TypeError:两个结构不匹配:Trajectory vs. Trajectory
- vue.js - 如何使用 Nuxt 中间件重定向到外部站点?
- firebase - 如何从 Firebase 存储中检索视频?科特林
- leveldb - leveldb 禁用或阻止日志文件
- python - 在方法中缺少 1 个必需的位置参数
- drupal - 我可以为视图设置动态参数吗?
- linux - Pacemaker IPaddr2 资源 - 无法从接口中删除 IP
- ruby-on-rails - 罗尔。宝石法拉第。如何重新发送带有正文的帖子查询
- android - Android:SQL Server以编程方式检查登录详细信息