ওয়ার্ডপ্রেস অ্যাডমিনে বিভাগ, ট্যাগ এবং কাস্টম ট্যাক্সনমি সম্পাদনা স্ক্রিনে ক্ষেত্রগুলি যুক্ত করা হচ্ছে?


33

প্রশ্নটি হল " ওয়ার্ডপ্রেস অ্যাডমিনে বিভাগ, ট্যাগ এবং কাস্টম ট্যাক্সোনমি সম্পাদনা স্ক্রিনে আমি কীভাবে এক বা একাধিক ক্ষেত্র যুক্ত করব? " এই প্রশ্নটি ডাব্লুপি-হ্যাকার তালিকার 1 ই আগস্ট 2010 এ জিজ্ঞাসা করা হয়েছিল এবং আমি সেদিনের পরে একটি সমাধানের প্রস্তাব দিয়েছিলামআসল প্রশ্নকর্তা ইস্যু আবার আলোচনা আজ (আগস্ট 21) যা আমাকে সমাধান স্মরণ করিয়ে। যেহেতু এটি একটি সাধারণ প্রয়োজন হতে পারে আমি ভবিষ্যতে অন্যদের সন্ধানের জন্য কোড সহ সমাধানটি পোস্ট করার সিদ্ধান্ত নিয়েছি।


হাই মাইক, আমি মনে করি আপনি উত্তর বাক্সে কোডটি পোস্ট করলে ভাল হয় would এইভাবে, যদি গিথুব ডাউন হয় তবে আমাদের এখানে ব্যাকআপ রয়েছে।
অরিফবায়ু

@ নিরব: আরে আমি এতে কাজ করে যাচ্ছি। :) আমি অর্ধেক হয়েছি, তবে আমি একটি প্রাচীর আঘাত করেছি এবং ঘুমানো দরকার। আমি সম্পন্ন হওয়ার পরে এটি দেখতে কিছুটা (কিছু) কেমন লাগবে তা এখানে: ওয়ার্ডপ্রেস.স্ট্যাকেক্সেঞ্জারভিউ
প্রশ্নস

এই কোন আরও উন্নয়ন? আমি আসলে আগ্রহী
একধরণের

আরে @ জন পি ব্লচ : আমার ক্লায়েন্টরা আমাকে পিন করেছে এবং ঠিক সময় নেই। আশা করি শীঘ্রই ...
মাইকচিন্কেল

@ জন পি ব্লচ আমি আসলে এটি চেষ্টা করেছি এবং এটি দুর্দান্ত কাজ করে, আমার পিতামাতার বিভাগ ছাড়া নির্দিষ্ট বিভাগগুলি 'গ্রুপ' করা দরকার।
অমিত 21

উত্তর:


23

আমি এগুলির সাহায্যে বিভাগে নতুন ক্ষেত্র 'চিত্র' (ইনপুট টাইপ ফাইল) যুক্ত করেছি

add_action('category_edit_form_fields','category_edit_form_fields');
add_action('category_edit_form', 'category_edit_form');
add_action('category_add_form_fields','category_edit_form_fields');
add_action('category_add_form','category_edit_form');


function category_edit_form() {
?>
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery('#edittag').attr( "enctype", "multipart/form-data" ).attr( "encoding", "multipart/form-data" );
        });
</script>
<?php 
}

function category_edit_form_fields () {
?>
    <tr class="form-field">
            <th valign="top" scope="row">
                <label for="catpic"><?php _e('Picture of the category', ''); ?></label>
            </th>
            <td>
                <input type="file" id="catpic" name="catpic"/>
            </td>
        </tr>
        <?php 
    }

আপনি যে কোনও শ্রেণীবদ্ধ ব্যবহার করতে পারবেন, কেবলমাত্র categoryআপনার ট্যাক্সনোমির নামটি প্রতিস্থাপন করুন


এটি দুর্দান্ত তবে আপনি দয়া করে ব্যাখ্যা করতে পারেন (বা সম্ভবত একটি উদাহরণ সরবরাহ করতে পারেন) আপনি যদি এই
পছন্দটিকে

2
আপডেট - যদিও এই পরীক্ষার জন্য আমি উপরে আপনার সঠিক কোডটি অনুলিপি করেছি তবে ফাইলটি সংরক্ষণ করা বলে মনে হচ্ছে বা কমপক্ষে এটি প্রদর্শিত হচ্ছে না। ফাইলটি কোথায় সংরক্ষণ করা হচ্ছে তা আপনি ব্যাখ্যা করতে পারলেন, সম্ভবত folder ফোল্ডারের অনুমতিগুলি সম্পাদনা করতে হবে (বা আরও ভাল, আপনি সম্ভবত বর্ণনা করতে পারেন যে এটির ফোল্ডারটি যেখানে সংরক্ষণ করা হয়েছে সেখানে তার অবস্থান পরিবর্তন করতে পারে?) যখন আমি কোনও ফাইল নির্বাচন করি এবং তারপরে কোনও শব্দটি ফাইল ব্যতীত তার সমস্ত সঞ্চয়ীকরণ সংরক্ষণ করার চেষ্টা করি এবং এভাবে আমাকে আপলোড হওয়া চিত্রটি দেখায় না।
নেটকন্সট্রাক্টর.কম

9

এছাড়াও, আপনি যদি সেই ক্ষেত্রটি কাস্টম ট্যাক্সনোমি ফর্মের সাথে যুক্ত করতে চান তবে আপনি কেবলমাত্র ফাংশনটিতে কাস্টম ট্যাক্সনোমির নাম সহ বিভাগের বিকল্প তৈরি করবেন add_action

উদাহরণ:

add_action('{custom_taxonomy}_edit_form_fields','category_edit_form_fields');
add_action('{custom_taxonomy}_edit_form', 'category_edit_form');
add_action('{custom_taxonomy}_add_form_fields','category_edit_form_fields');
add_action('{custom_taxonomy}_add_form','category_edit_form');

2

ট্যাগ ফর্ম ক্ষেত্রে হুক খুঁজছেন তাদের জন্য, হুক কিছুটা আলাদা।

add_tag_form_fields

ট্যাগ_এডিডি_ফর্ম_ফিল্ডের পরিবর্তে আপনার প্রত্যাশা মতো


1

আমি বুঝতে পেরেছি এটি সম্পর্কে কিছুক্ষণ আগে জিজ্ঞাসা করা হয়েছিল, তবে ওয়ার্ডপ্রেস কিছুটা বদলেছে তাই আমি একটি ছোট স্ক্রিপ্ট বিকাশ করার সিদ্ধান্ত নিয়েছি যা ট্যাক্সনোমিতে কাস্টম ক্ষেত্রগুলি যুক্ত করার প্রক্রিয়াটিকে সহজতর করে optionচ্ছিকভাবে আপনাকে প্রতিটি ক্ষেত্রের শর্তাবলীতে কলাম যুক্ত করতে দেয়। স্ক্রিপ্টটিকে অমরকাল-ট্যাক্সোনমি বলা হয় এবং এটি অমরকাল ওয়ার্ডপ্রেস কাঠামোর অংশ ।

amarkal-taxonomyএকটি কাস্টম ক্ষেত্র যুক্ত করে ব্যবহার সহজ করে দেয়:

// Add a text field to the 'category' taxonomy 'add' & 'edit' forms:
amarkal_taxonomy_add_field('category', 'cat_icon', array(
    'type'        => 'text',
    'label'       => 'Icon',
    'description' => 'The category\'s icon',
    'table'       => array(
        'show'      => true,  // Add a column to the terms table
        'sortable'  => true   // Make that column sortable
    )
));

// Then you can retrieve the data using:
$icon = get_term_meta( $term_id, 'cat_icon', true );

1

আমি যুক্ত ইমেজ যুক্ত করেছি এবং কাস্টম ট্যাক্সনোমিতে অতিরিক্ত ফাইল করা চিত্রটি সরান যা নামটি বীমা।

/**
 * Plugin class
 **/
if ( ! class_exists( 'CT_TAX_META' ) ) {

class CT_TAX_META {

  public function __construct() {
    //
  }

 /*
  * Initialize the class and start calling our hooks and filters
  * @since 1.0.0
 */
 public function init() {
   add_action( 'insurance_add_form_fields', array ( $this, 'add_category_image' ), 10, 2 );
   add_action( 'created_insurance', array ( $this, 'save_category_image' ), 10, 2 );
   add_action( 'insurance_edit_form_fields', array ( $this, 'update_category_image' ), 10, 2 );
   add_action( 'edited_insurance', array ( $this, 'updated_category_image' ), 10, 2 );
   add_action( 'admin_enqueue_scripts', array( $this, 'load_media' ) );
   add_action( 'admin_footer', array ( $this, 'add_script' ) );
 }

public function load_media() {
 wp_enqueue_media();
}

 /*
  * Add a form field in the new category page
  * @since 1.0.0
 */
 public function add_category_image ( $taxonomy ) { ?>
   <div class="form-field term-group">
     <label for="category-image-id"><?php _e('Image', 'hero-theme'); ?></label>
     <input type="hidden" id="category-image-id" name="category-image-id" class="custom_media_url" value="">
     <div id="category-image-wrapper"></div>
     <p>
       <input type="button" class="button button-secondary ct_tax_media_button" id="ct_tax_media_button" name="ct_tax_media_button" value="<?php _e( 'Add Image', 'hero-theme' ); ?>" />
       <input type="button" class="button button-secondary ct_tax_media_remove" id="ct_tax_media_remove" name="ct_tax_media_remove" value="<?php _e( 'Remove Image', 'hero-theme' ); ?>" />
    </p>
   </div>
 <?php
 }

 /*
  * Save the form field
  * @since 1.0.0
 */
 public function save_category_image ( $term_id, $tt_id ) {
   if( isset( $_POST['category-image-id'] ) && '' !== $_POST['category-image-id'] ){
     $image = $_POST['category-image-id'];
     add_term_meta( $term_id, 'category-image-id', $image, true );
   }
 }

 /*
  * Edit the form field
  * @since 1.0.0
 */
 public function update_category_image ( $term, $taxonomy ) { ?>
   <tr class="form-field term-group-wrap">
     <th scope="row">
       <label for="category-image-id"><?php _e( 'Image', 'hero-theme' ); ?></label>
     </th>
     <td>
       <?php $image_id = get_term_meta ( $term -> term_id, 'category-image-id', true ); ?>
       <input type="hidden" id="category-image-id" name="category-image-id" value="<?php echo $image_id; ?>">
       <div id="category-image-wrapper">
         <?php if ( $image_id ) { ?>
           <?php echo wp_get_attachment_image ( $image_id, 'thumbnail' ); ?>
         <?php } ?>
       </div>
       <p>
         <input type="button" class="button button-secondary ct_tax_media_button" id="ct_tax_media_button" name="ct_tax_media_button" value="<?php _e( 'Add Image', 'hero-theme' ); ?>" />
         <input type="button" class="button button-secondary ct_tax_media_remove" id="ct_tax_media_remove" name="ct_tax_media_remove" value="<?php _e( 'Remove Image', 'hero-theme' ); ?>" />
       </p>
     </td>
   </tr>
 <?php
 }

/*
 * Update the form field value
 * @since 1.0.0
 */
 public function updated_category_image ( $term_id, $tt_id ) {
   if( isset( $_POST['category-image-id'] ) && '' !== $_POST['category-image-id'] ){
     $image = $_POST['category-image-id'];
     update_term_meta ( $term_id, 'category-image-id', $image );
   } else {
     update_term_meta ( $term_id, 'category-image-id', '' );
   }
 }

/*
 * Add script
 * @since 1.0.0
 */
 public function add_script() { ?>
   <script>
     jQuery(document).ready( function($) {
       function ct_media_upload(button_class) {
         var _custom_media = true,
         _orig_send_attachment = wp.media.editor.send.attachment;
         $('body').on('click', button_class, function(e) {
           var button_id = '#'+$(this).attr('id');
           var send_attachment_bkp = wp.media.editor.send.attachment;
           var button = $(button_id);
           _custom_media = true;
           wp.media.editor.send.attachment = function(props, attachment){
             if ( _custom_media ) {
               $('#category-image-id').val(attachment.id);
               $('#category-image-wrapper').html('<img class="custom_media_image" src="" style="margin:0;padding:0;max-height:100px;float:none;" />');
               $('#category-image-wrapper .custom_media_image').attr('src',attachment.url).css('display','block');
             } else {
               return _orig_send_attachment.apply( button_id, [props, attachment] );
             }
            }
         wp.media.editor.open(button);
         return false;
       });
     }
     ct_media_upload('.ct_tax_media_button.button'); 
     $('body').on('click','.ct_tax_media_remove',function(){
       $('#category-image-id').val('');
       $('#category-image-wrapper').html('<img class="custom_media_image" src="" style="margin:0;padding:0;max-height:100px;float:none;" />');
     });
     // Thanks: http://stackoverflow.com/questions/15281995/wordpress-create-category-ajax-response
     $(document).ajaxComplete(function(event, xhr, settings) {
       var queryStringArr = settings.data.split('&');
       if( $.inArray('action=add-tag', queryStringArr) !== -1 ){
         var xml = xhr.responseXML;
         $response = $(xml).find('term_id').text();
         if($response!=""){
           // Clear the thumb image
           $('#category-image-wrapper').html('');
         }
       }
     });
   });
 </script>
 <?php }

  }

$CT_TAX_META = new CT_TAX_META();
$CT_TAX_META -> init();

}

দ্রষ্টব্য: আপনি যদি এই ক্ষেত্রটি কোনও অন্য শ্রেণীবিন্যাসে যুক্ত করতে চান, যেমন একটি কাস্টম পোস্ট ধরণের জন্য, আপনার নিজের শ্রেণিবদ্ধ স্লাগের একটি রেফারেন্স সহ বিভাগের রেফারেন্সটি প্রতিস্থাপন করতে হবে। উদাহরণস্বরূপ, আপনি যদি একটি জেনার টেকনোমি তৈরি করেন তবে আপনি এই ফাংশনটি হুক করবেন

add_action( 'taxonomy_add_form_fields', array ( $this, 'add_category_image' ), 10, 2 ).

আমার ট্যাক্সনমি স্লাগের নাম বীমা।

যোগ_অ্যাকশন ('বীমা_এডডি_ফর্ম_ফিল্ডস'), অ্যারে ($ এটি, 'অ্যাড_ক্যাটরি_আইমেজ'), 10, 2);

আপনার functions.phpফাইলটিতে এই কোডটি ব্যবহার করুন।


0

আপনার থিমস ফাংশন.এফপি ফাইলে আপনার কোডটি যুক্ত করতে হবে - আপনি যদি সেই ক্ষেত্রটি কাস্টম ট্যাক্সনোমি ফর্মের সাথে যুক্ত করতে চান তবে আপনি কেবল অ্যাড_টিশন ফাংশনে কাস্টম ট্যাক্সনোমির নাম সহ বিভাগের বিকল্প স্থাপন করবেন। উদাহরণ: যোগ_অ্যাকশন ('বিভাগ_পরিচালিত_ফর্ম_ফিল্ডস', 'বিভাগ_শীতী_রূপ_ক্ষেত্র'); অ্যাডঅ্যাকশন হবে ('কাস্টম_ট্যাক্সনমি_নেম_ফর্ম_ফিল্ডস', 'ফাংশন_নেম_ টো_হুক_ন');


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.