php - 如何使用 Hooks 编辑现有的 PHP 文件?
问题描述
我是 PHP 新手,我必须为 WordPress 插件编辑现有的 PHP 代码以满足我的需要。
我对钩子的了解是我们可以在函数中附加一个额外的函数。
但是现在我需要编辑整个 PHP 文件,在页面中间添加一行额外的代码。
我面临的问题是代码不是我使用钩子的一组函数,而是像这样:
<?php
global $current_user;
master_user_content_block_start(array(
'title' => esc_html__('My Profile', 'master'),
'title-link-text' => esc_html__('Edit Profile', 'master'),
'title-link' => master_get_template_url('user', array('page_type'=>'edit-profile'))
));
$profile_list = array(
'full_name' => esc_html__('Name', 'master'),
'gender' => esc_html__('Gender', 'master'),
'birth_date' => esc_html__('Birth Date', 'master'),
'country' => esc_html__('Country', 'master'),
'email' => esc_html__('Email', 'master'),
'phone' => esc_html__('Phone', 'master'),
'contact_address' => esc_html__('Contact Address', 'master'),
);
echo '<div class="master-my-profile-wrapper" >';
echo '<div class="master-my-profile-avatar" >';
$avatar = get_the_author_meta('master-user-avatar', $current_user->data->ID);
if( !empty($avatar['thumbnail']) ){
echo '<img src="' . esc_url($avatar['thumbnail']) . '" alt="profile-image" />';
}else if( !empty($avatar['file_url']) ){
echo '<img src="' . esc_url($avatar['file_url']) . '" alt="profile-image" />';
}else{
echo get_avatar($current_user->data->ID, 85);
}
echo '</div>';
$even_column = true;
echo '<div class="master-my-profile-info-wrap clearfix" >';
foreach( $profile_list as $meta_field => $field_title ){
$extra_class = 'master-my-profile-info-' . $meta_field;
$extra_class .= ($even_column)? ' master-even': ' master-odd';
echo '<div class="master-my-profile-info ' . esc_attr($extra_class) . ' clearfix" >';
echo '<span class="master-head" >' . $field_title . '</span>';
echo '<span class="master-tail" >';
if( $meta_field == 'birth_date' ){
$user_meta = master_get_user_meta($current_user->data->ID, $meta_field, '-');
if( $user_meta == '-' ){
echo $user_meta;
}else{
echo master_date_format($user_meta);
}
}else if( $meta_field == 'gender' ){
$user_meta = master_get_user_meta($current_user->data->ID, $meta_field, '-');
if( $user_meta == 'male' ){
echo esc_html__('Male', 'master');
}else if( $user_meta == 'female' ){
echo esc_html__('Female', 'master');
}
}else{
echo master_get_user_meta($current_user->data->ID, $meta_field, '-');
}
echo '</span>';
echo '</div>';
$even_column = !$even_column;
}
echo '</div>';
如何在不更改主文件内容的情况下使用附加的php文件编辑此页面的代码以避免插件更新时出现问题。
编辑示例 我想删除出生日期字段并将“男性”一词更改为成人,将“女性”一词更改为儿童。
解决方案
推荐阅读
- azure - Azure DevOps 管道中的通用硒测试
- azure - 逻辑应用程序加载 excel 的内容,然后将其转换为 csv
- amazon-web-services - AWS 使用 boto3 自动缩放创建 EMR 无法正常工作
- amazon-s3 - 无法将通知配置添加到 s3 存储桶
- python - Sklearn 凝聚聚类自定义亲和性
- string - 字符串替换 | 外壳/bash 文件
- curl - 如何在 ETH(Web3 或 Curl 方法)中发送内部交易?
- laravel - Laravel 混合获取 Eloquent 急切加载嵌套多个模型
- amazon-web-services - OpsGenie Cloudwatch 集成与传入 SNS 集成
- c++ - 创建自己的整数类