首页 > 解决方案 > 如何使用 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文件编辑此页面的代码以避免插件更新时出现问题。

编辑示例 我想删除出生日期字段并将“男性”一词更改为成人,将“女性”一词更改为儿童。

标签: phphtmlwordpresswordpress-plugin-creation

解决方案


推荐阅读