如何使用Hook Wordpress



我正在使用一个用户头像从前端上传个人资料图片。带有文档的插件链接:https://github.com/onedesigns/one-user-avatar

在文档中,它说——如果你正在用其他字段构建自己的个人资料编辑页面,"一个用户头像"会自动添加到show_User_profile和edit_User_pronfile挂钩中。如果你想在自己的部分中有一个用户头像,你可以添加另一个钩子:

do_action( 'edit_user_avatar', $current_user );

然后,要将一个用户头像添加到该挂钩中,并将其从管理面板之外的其他挂钩中删除,您需要将此代码添加到主题的functions.php文件中:

function my_avatar_filter() {
// Remove from show_user_profile hook
remove_action( 'show_user_profile', array( 'wp_user_avatar', 'wpua_action_show_user_profile' ) );
remove_action( 'show_user_profile', array( 'wp_user_avatar', 'wpua_media_upload_scripts' ) );
// Remove from edit_user_profile hook
remove_action( 'edit_user_profile', array( 'wp_user_avatar', 'wpua_action_show_user_profile' ) );
remove_action( 'edit_user_profile', array( 'wp_user_avatar', 'wpua_media_upload_scripts' ) );
// Add to edit_user_avatar hook
add_action( 'edit_user_avatar', array( 'wp_user_avatar', 'wpua_action_show_user_profile' ) );
add_action( 'edit_user_avatar', array( 'wp_user_avatar', 'wpua_media_upload_scripts' ) );
}
// Loads only outside of administration panel
if ( ! is_admin() ) {
add_action( 'init','my_avatar_filter' );
}

我想做的是将一个用户头像添加到用户配置文件编辑页面,但我不清楚如何使用建议的挂钩。

这个想法是将一个用户头像添加到高级自定义字段(ACF(字段中:https://www.advancedcustomfields.com/resources/

或者使其与Profile Builder Pro配合使用:https://www.cozmoslabs.com/docs/profile-builder-2/

我有所有的文档,我已经寻找解决方案超过5天了,我尝试了好几次都没有成功。由于我对Wordpress和php还比较陌生,所以我不清楚该采取什么步骤。

有人能给我小费吗?

好吧,让我来解释一下WordPress中钩子的概念。通常,钩子是WordPress中的执行点,在这些特定的执行点上,可以操作数据或附加内容。WordPress中有两种类型的挂钩i( Action Hookii(过滤钩

  1. 操作挂钩通常用于附加内容或修改内容而不返回内容。例如do_action('hook_tag_name', $data)->这就是为第三方开发人员在插件中标记钩子的方式。现在,如果有人想修改"hook_tag_name"上的数据,那么只需在此处使用此语法add_action('hook_tag_name', 'callback_function', 10, 1)。在这个回调函数"callback_function"中,可以简单地插入他/她自己的自定义内容,例如->function callback_function($data) {echo "Hello World!";}与上面的语法类似,您可以在不返回内容的情况下修改内容,在过滤器挂钩的情况下,您必须在挂钩附带的回调函数中使用关键字"return"。此外,数字"10"->是优先级,1->是在钩子内传递的参数数。在这种情况下,"$data"是实际为1个参数的参数。您可以像这样传递多个参数->do_action('hook_tag_name', $data, $data2, ...)

  2. 对于筛选器,这是语法apply_filters('hook_tag_name', $data)。要修改"hook_tag_name"中的数据,只需在此处使用此语法即可->add_filter('hook_tag_name', 'callback_function', 10, 1),其中"10"是执行的筛选器挂钩的优先级。"1"是在筛选器挂钩内部传递的数据数。但请注意,就过滤器挂钩而言,如果"数据"在过滤器挂钩上传递,则需要返回,如果不返回,则会引发错误。以下是它的外观->function callback_function($data){ return $data; }

现在回到您的观点,在您的案例中,wpua_action_show_user_profile是回调函数。像function wpua_action_show_user_profile($current_user_object)一样定义这个函数。您需要修改$current_user_object配置文件图像的url。为了更改头像,如果你还需要其他东西,请告诉我。或者,您可以使用此代码更改化身的src。这个钩子将帮助您->CCD_ 11。确保在应用任何新的化身链接之前对有效负载进行var_dump

最新更新