我的函数中有以下函数.php文件:-
function apply_for_job() {
$job_id = $_GET['job_id'];
$user_id = get_current_user_id();
$prev_value = get_field('applied_jobs');
update_user_meta($user_id, 'applied_jobs', $job_id);
}
add_filter('init' ,'apply_for_job');
当我加载时:http://distinct.dev/apply_for_job/?job_id=323
这会按预期将"applied_jobs"字段更新为:323。
但是,当我进入我的用户配置文件页面时,它将值设置为"NULL"
知道为什么吗?
不确定它是否被认为是"最佳实践",但我设法通过将上述内容更改为:-
function apply_for_job() {
if (!empty($_GET['job_id'])) {
$job_id = $_GET['job_id'];
}
$user_id = get_current_user_id();
update_user_meta($user_id, 'applied_jobs', $job_id);
}
if (!empty($_GET['job_id'])) {
add_filter('init' ,'apply_for_job');
}
通过在过滤器周围添加if (!empty($_GET['job_id'])) {
并$_GET['job_id']
,否则无论访问哪个页面,它都会更新。