turansonkaya adlı üyeden alıntı: mesajı görüntüle
Selamlar,
WordPress üzerinde her ürün kategorisi için custom bir alan yaratıp kategorinin en altına sabitlemek istiyorum.
Her kategori için farklı açıklamalar olacak.
Bahsettiğim alan kategori içinde bulunan "Kategori Açıklaması" harici olacak şekilde bir yeni alan yaratmak istiyorum.
Bunu yapabileceğim bir eklenti var mıdır?

        Class Kategori_ek_yazi {
            private $fieldsInfo = [
        array(
            "label" => "Kategori Ek Yazı Alanı",
            "type" => "textarea",
            "description" => "",
            "placeholder" => "",
            "name" => "kategoriekyazialani",
            "id" => "KategoriEkYazi_fields[kategoriekyazialani]",
        ),
         ];
        
            public function __construct() {
        
                if ( is_admin() ) {
                    add_action("category_add_form_fields", [$this, "add_term_fields"], 10, 2);
                    add_action("category_edit_form_fields", [$this, "edit_term_fields"], 10, 2);
                    add_action("created_category", [$this, "save_meta"], 10, 2 );
                    add_action("edited_category", [$this, "update_meta"], 10, 2 );
                }
            }
        
        
            private function generate_table_html( $label, $field, $desc ) {
                return "<tr class='form-field'><th>$label</th><td>$field<p>$desc</p> </td></tr>";
            }
        
            private function generate_input_html($fieldtype, $field_id, $value="", $placeholder="") {
        
                switch ($fieldtype) {
                    case "text":
                    return "<input id='$field_id' $placeholder value='$value' size='40' type='$fieldtype' name='$field_id'/>";
                        break;
                    case "textarea":
                        return "<textarea $placeholder name='$field_id' id='$field_id' rows='5' cols='40'>$value</textarea>";
                        break;
                    default:
                        return;
                }
            }
        
        
            function add_term_fields() { // adding view
        
                $fields = $this->fieldsInfo; $html;
        
                foreach ($fields as $key=>$field) {
        
                    if(isset($field["placeholder"])) { $placeholder = "placeholder='".$field["placeholder"]."'"; }
                    else { $placeholder ='';}
                    $input = $this->generate_input_html($field["type"], $field["id"], "", $placeholder);
                    $html .= "<label for='".$field["id"]."'>".$field["label"]."</label>$input
                    <p>".$field["description"]."</p>";
                }
        
                $html = "<div class='form-field'>$html</div>";
        
                echo $html;
        
            }
        
            function edit_term_fields($term) { // edit view
        
                $fields = $this->fieldsInfo; $html;
        
                foreach ($fields as $key=>$field) {
        
                    $value = get_term_meta($term->term_id, $field["name"], true);
        
                    if(isset($field["placeholder"])) {
                        $placeholder =  "placeholder='".$field["placeholder"]."'";
                    } else { $placeholder ="";}
        
                    $label = "<label for='".$field["id"]."'>".$field["label"]."</label>";
                    $input = $this->generate_input_html($field["type"], $field["id"], $value, $placeholder);
                    $html .= $this->generate_table_html($label, $input, $field["description"]);
                }
        
                echo $html;
                
            }
        
            function save_meta($term_id) {
                if( isset( $_POST["KategoriEkYazi_fields"] ) ) {
                    foreach ($_POST["KategoriEkYazi_fields"] as $key => $value) {
                        update_term_meta($term_id, $key, sanitize_text_field($value));  
                    }
                }
            }
        
            function update_meta($term_id){
                if( isset( $_POST["KategoriEkYazi_fields"] ) ) {
                    foreach ($_POST["KategoriEkYazi_fields"] as $key => $value) {
                        update_term_meta($term_id, $key, sanitize_text_field($value));
                    }
                }
            }
        }
        
        if (class_exists("Kategori_ek_yazi")) {
            new Kategori_ek_yazi;
        };
Yukarıdaki kodlar fazlasıyla işinizi görecektir.

get_term_meta('kategori_id_buraya_gelecek', 'kategoriekyazialani ', true) // Veri Çağırma
Aceleyle yazdım kaba taslak istediğiniz şey yukardaki kodlardır kendinize göre düzenleyip kullanırsınız