我有一个叫contrib的CPT。当我添加contrib post时,我希望将contrib post的id插入到当前用户的用户元中,并将其插入名为contrib-id的ACF (文本)中。
这是我到目前为止为我的functions.php所做的
你知道怎么修复这个致命的错误吗?
function save_contrib_id_to_user_meta($id, $post)
{
if($post->post_type != 'contrib') {
return;
}
// update the current USER post
if ( is_user_logged_in() ) {
update_user_meta( get_current_user_id(), 'contrib-id', ( $_POST['id'] ) );
}
}
add_action('save_post', 'save_contrib_id_to_user_meta');下面是它抛出的错误
Fatal error: Uncaught ArgumentCountError: Too few arguments to function save_contrib_id_to_user_meta(), 1 passed in /home/customer/www/mydomain.com/public_html/wp-includes/class-wp-hook.php on line 289 and exactly 2 expected in /home/customer/www/mydomain.com/public_html/wp-content/plugins/code-snippets/php/snippet-ops.php(446) : eval()'d code:1 Stack trace: #0 /home/customer/www/mydomain.com/public_html/wp-includes/class-wp-hook.php(289): save_contrib_id_to_user_meta(28505) #1 /home/customer/www/mydomain.com/public_html/wp-includes/class-wp-hook.php(311): WP_Hook->apply_filters(NULL, Array) #2 /home/customer/www/mydomain.com/public_html/wp-includes/plugin.php(478): WP_Hook->do_action(Array) #3 /home/customer/www/mydomain.com/public_html/wp-includes/post.php(4153): do_action('save_post', 28505, Object(WP_Post), true) #4 /home/customer/www/mydomain.com/public_html/wp-includes/post.php(4244): wp_insert_post(Array, false) #5 /home/customer/www/mydomain.com/public_html/wp-includes/post.php(3160): wp_update_post(Array) #6 /home/customer/www/r in /home/customer/www/mydomain.com/public_html/wp-content/plugins/code-snippets/php/snippet-ops.php(446) : eval()'d code on line 1发布于 2020-05-03 21:53:24
问题出在您的add_action中,如果参数多于一个,则需要指定参数的数量(因为您传递的是$id和$post)。
此外,您也可以使用save_post_{post-type}挂钩,但save_post仍然可以工作。
function save_contrib_id_to_user_meta($id, $post)
{
if($post->post_type != 'contrib') {
return;
}
// update the current USER post
if ( is_user_logged_in() ) {
update_user_meta( get_current_user_id(), 'contrib-id', $id ) );
}
}
// This is the line that needs to change. Adding the argument count.
add_action('save_post', 'save_contrib_id_to_user_meta', 10, 2);
// You could use this instead and skip the post type check
add_action('save_post_contrib', 'save_contrib_id_to_user_meta', 10, 2);https://stackoverflow.com/questions/61569182
复制相似问题