php - 为什么 Wordpress get_the_ID() 返回空?
问题描述
我的代码很简单:
$group_id = get_the_ID();
if ( get_post_meta ($group_id, '_um_groups_shells', true) == 'true'){
wp_set_object_terms( $group_id, array( 'full-shells' ), 'um_group_categories', true );
} elseif ( get_post_meta ($group_id, '_um_groups_shells', true) == 'false'){
wp_remove_object_terms( $group_id, array( 'full-shells' ), 'um_group_categories', true );
}
我已经通过使用检查了条件是否正常工作die("Group:". $group_id);
我发现在示例die("Group:". $group_id);
中$group_id
返回51478
。但如果我使用 just die($group_id);
then 它是空的。
基于此,我假设
wp_set_object_terms( $group_id, array( 'full-shells' ), 'um_group_categories', true );
不起作用,因为$group_id
必须为空。
如果我这样运行它:
$group_id = 51478;
wp_set_object_terms( $group_id, array( 'full-shells' ), 'um_group_categories', true );
然后它工作正常。
更新
我尝试了 wpdevloper_j 的使用建议global $post; $post->ID;
。但同样的问题发生了。我可以echo $group_id
并且print_r($group_id)
获得正确的 id,但是当尝试使用它执行时,wp_set_object_terms
它似乎是空的。
是什么导致$group_id
空的?
当我这样做时var_dump ($group_id)
,我收到int(51478)
更新 的解决方案问题出在后面的代码行:
wp_set_object_terms( $group_id, $formdata[ 'categories' ], 'um_group_categories', false );
该false
参数正在撤消上一个。所以它正在执行,然后在成功执行后再次更新。
那太令人沮丧了。:(
解决方案
die() — 相当于退出
exit ( string $status = ? ) : void
exit ( int $status ) : void
推荐阅读
- css - 如何拥有所有'
- ' 映射到数组时具有相同的高度?
- keycloak - 通过 CLI 配置 Keycloak eventsListener
- python - 我一直试图让这段代码工作几个小时,我试图以多种方式修复它,但它仍然不起作用
- c# - 将昼夜循环与时钟联系起来
- flutter - Flutter Web 检查是否启用了 cookie?
- c# - 为什么同步 .NET Core CAP 订阅者会导致异常并且不会命中 catch 块?
- ruby-on-rails - Rails 中的 Resource 和 Resources 有什么区别?
- javascript - 我想了解 React 中 setState 的这种奇怪行为
- php - PHP 为什么 foreach 函数不起作用?
- java - 如果新线程在带注释的方法中启动,如何防止 @Transactional 关闭事务?