HEX
Server: nginx/1.22.0
System: Linux iZuf6jdxbygmf6cco977lcZ 5.10.84-10.4.al8.x86_64 #1 SMP Tue Apr 12 12:31:07 CST 2022 x86_64
User: root (0)
PHP: 7.4.29
Disabled: passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,readlink,symlink,popepassthru,stream_socket_server,fsocket,popen
Upload Files
File: /data/wwwroot/wordpress/wp-content/plugins/wp-seo-tdk/seo-term-meta.php
<?php

add_action('category_add_form_fields','seo_extra_create_term_fields');
add_action('created_category','seo_extra_term_fileds_save');
add_action('edit_category_form_fields','seo_extra_edit_term_fields');
add_action('edited_category','seo_extra_term_fileds_save');

add_action('add_tag_form_fields','seo_extra_create_term_fields');
add_action('created_post_tag','seo_extra_term_fileds_save');
add_action('edit_tag_form_fields','seo_extra_edit_term_fields');
add_action('edited_post_tag','seo_extra_term_fileds_save');

function _seo_generate_extra_term_fields($term, $create_field){
    $metas = array(
        array('meta_name' => 'SEO标题','meta_key' => 'seo_title'),
        array('meta_name' => 'SEO关键词','meta_key' => 'seo_keywords'),
        array('meta_name' => 'SEO描述','meta_key' => 'seo_description', 'meta_type' => 'textarea')
    );
    if(isset($term->term_id)) {
        $term_id = $term->term_id;
    }
    foreach($metas as $meta) {
        $meta_name = $meta['meta_name'];
        $meta_key = $meta['meta_key'];
        $meta_type = $meta['meta_type'];
        if(isset($term_id)) {
            $meta_value = seo_get_term_meta($term_id, $meta_key);
        }
        else {
            $meta_value = '';
        }
        $create_field($meta_type, $meta_name, $meta_key, $meta_value);
    }
}

function seo_extra_create_term_fields($term) {
    _seo_generate_extra_term_fields($term, function($meta_type, $meta_name, $meta_key, $meta_value) {
        if ($meta_type == 'textarea') {
            $input = '<textarea name="term_meta_'.$meta_key.'" id="term_'.$meta_key.'" class="large-text" rows="5">'.esc_html($meta_value).'</textarea>';
        }
        else {
            $input = '<input type="text" name="term_meta_'.$meta_key.'" id="term_'.$meta_key.'" value="'.esc_html($meta_value).'">';
        }
        echo '<div class="form-field">
            <label for="term_'.$meta_key.'">'.$meta_name.'</label>
            '.$input.'
        </div>';
    });
}

function seo_extra_edit_term_fields($term) {
    _seo_generate_extra_term_fields($term, function($meta_type, $meta_name, $meta_key, $meta_value) {
        if ($meta_type == 'textarea') {
            $input = '<textarea name="term_meta_'.$meta_key.'" id="term_'.$meta_key.'" class="large-text" rows="5">'.esc_html($meta_value).'</textarea>';
        }
        else {
            $input = '<input type="text" name="term_meta_'.$meta_key.'" id="term_'.$meta_key.'" value="'.esc_html($meta_value).'">';
        }
        echo '<tr class="form-field">
            <th scope="row" valign="top"><label for="term_'.$meta_key.'">'.$meta_name.'</label></th>
            <td>'.$input.'</td>
        </tr>';
    });
}

function seo_extra_term_fileds_save($term_id){
    if(!empty($_POST)) foreach($_POST as $key => $value){
        if(strpos($key,'term_meta_') === 0) {
			$meta_key = str_replace('term_meta_','',$key);
			if (trim($value) == '') {
				delete_term_meta($term_id, $meta_key);
			}
			else {
            	$meta_value = esc_html(trim($value));
            	update_term_meta($term_id, $meta_key, $meta_value) OR add_term_meta($term_id, $meta_key, $meta_value, true);
			}
        }
    }
}