প্যানেলগুলি সম্পাদনার জন্য কাস্টম কলামগুলির ক্রম পরিবর্তন করুন


27

আপনি যখন পছন্দসই কাস্টম কলামটি নিবন্ধ করুন:

//Register thumbnail column for au-gallery type
add_filter('manage_edit-au-gallery_columns', 'thumbnail_column');
function thumbnail_column($columns) {
$columns['thumbnail'] = 'Thumbnail';
return $columns;
}

ডিফল্টরূপে এটি ডানদিকে সর্বশেষ হিসাবে উপস্থিত হয়। আমি কীভাবে অর্ডার পরিবর্তন করতে পারি? আমি যদি উপরের কলামটি প্রথম বা দ্বিতীয়টি হিসাবে দেখাতে চাই তবে কী হবে?

তুমাকে অগ্রিম ধন্যবাদ

উত্তর:


36

আপনি মূলত পিএইচপি প্রশ্ন জিজ্ঞাসা করছেন, তবে আমি উত্তর দেব কারণ এটি ওয়ার্ডপ্রেসের প্রসঙ্গে। আপনি কলামটি অ্যারেটি পুনরায় তৈরি করতে হবে, আপনার কলামটি বামে থাকতে চান তার আগে আপনার কলামটি সন্নিবেশ করানো দরকার :

add_filter('manage_posts_columns', 'thumbnail_column');
function thumbnail_column($columns) {
  $new = array();
  foreach($columns as $key => $title) {
    if ($key=='author') // Put the Thumbnail column before the Author column
      $new['thumbnail'] = 'Thumbnail';
    $new[$key] = $title;
  }
  return $new;
}

হ্যাঁ, আমি অনুমান করি যে এটি সহজ এবং সহজ উপায় :) তবে আমি আমার উত্তরে এই ধারণাটি পেয়েছি। সুন্দর চিন্তা।
বেন্টারনেট

אתרים אתרים - আপনি যখন আপনার উত্তরটি দিয়েছিলেন তখন আমার উত্তর লিখতে প্রায় শেষ হয়ে যায়, সুতরাং আমাদের উত্তরগুলি " মেলকে পেরিয়ে গেছে " , তাই কথা বলতে। যাইহোক, এটি বের করতে আমার কিছুটা সময় লেগেছিল; এটি প্রথমবার যখন আমার প্রয়োজন হয়েছিল তা অবশ্যই আমার কাছে ঘটেনি।
মাইকচিন্কেল

একটি বিষয় লক্ষ্য রাখতে হবে: অন্য প্লাগইন লেখক কলামটি সরিয়ে ফেললে কী ঘটে? আপনার নিজস্ব থাম্বনেইল কলামটিও অদৃশ্য হয়ে যাবে। আপনি isset($new['thumbnail'])ফিরে আসার আগে একটি চেক করতে পারেন $new। যদি এটি সেট না করা থাকে তবে কেবল শেষে এটি যুক্ত করুন।
গের্ট

5

আপনার যদি ডাব্লুপিএমএলের মতো প্লাগইন থাকে যা স্বয়ংক্রিয়ভাবে কলামগুলি এমনকি কাস্টম পোস্টের ধরণের ক্ষেত্রেও কলাম যুক্ত করে, আপনার টেবিল শিরোনামে আপনার জটিল কোড থাকতে পারে।

আপনি কোডটি আপনার কলাম সংজ্ঞাতে অনুলিপি করতে চান না। কেন যে কেউ, যে বিষয়টি জন্য।

আমরা কেবল ইতিমধ্যে সরবরাহিত, সুন্দর বিন্যাসিত এবং সাজানোর যোগ্য ডিফল্ট কলামগুলি প্রসারিত করতে চাই।

আসলে, এটি কোডের মাত্র সাতটি লাইন এবং এটি অন্যান্য সমস্ত কলাম অক্ষত রাখে।

# hook into manage_edit-<mycustomposttype>_columns
add_filter( 'manage_edit-mycustomposttype_columns', 'mycustomposttype_columns_definition' ) ;

# column definition. $columns is the original array from the admin interface for this posttype.
function mycustomposttype_columns_definition( $columns ) {

  # add your column key to the existing columns.
  $columns['mycolumn'] = __( 'Something different' ); 

  # now define a new order. you need to look up the column 
  # names in the HTML of the admin interface HTML of the table header. 
  #   "cb" is the "select all" checkbox.
  #   "title" is the title column.
  #   "date" is the date column.
  #   "icl_translations" comes from a plugin (in this case, WPML).
  # change the order of the names to change the order of the columns.
  $customOrder = array('cb', 'title', 'icl_translations', 'mycolumn', 'date');

  # return a new column array to wordpress.
  # order is the exactly like you set in $customOrder.
  foreach ($customOrder as $colname)
    $new[$colname] = $columns[$colname];    
  return $new;
}

আশাকরি এটা সাহায্য করবে..


3

আমি জানি একমাত্র উপায় কীভাবে আপনার নিজের কলামগুলির অ্যারে তৈরি করা যায়

// Add to admin_init function
add_filter('manage_edit-au-gallery_columns', 'add_my_gallery_columns');

function add_my_gallery_columns($gallery_columns) {
        $new_columns['cb'] = '<input type="checkbox" />';

        $new_columns['id'] = __('ID');
        $new_columns['title'] = _x('Gallery Name', 'column name');
                // your new column somewhere good in the middle
        $new_columns['thumbnail'] = __('Thumbnail');

        $new_columns['categories'] = __('Categories');
        $new_columns['tags'] = __('Tags');
        $new_columns['date'] = _x('Date', 'column name');

        return $new_columns;
    }

এবং তারপরে আপনার মতো অতিরিক্ত অতিরিক্ত কলামগুলি রেন্ডার করুন সাধারণত

// Add to admin_init function
    add_action('manage_au-gallery_posts_custom_column', 'manage_gallery_columns', 10, 2);

    function manage_gallery_columns($column_name, $id) {
        global $wpdb;
        switch ($column_name) {
        case 'id':
            echo $id;
                break;

        case 'Thumbnail':
            $thumbnail_id = get_post_meta( $id, '_thumbnail_id', true );
                // image from gallery
                $attachments = get_children( array('post_parent' => $post_id, 'post_type' => 'attachment', 'post_mime_type' => 'image') );
                if ($thumbnail_id)
                    $thumb = wp_get_attachment_image( $thumbnail_id, array($width, $height), true );
                elseif ($attachments) {
                    foreach ( $attachments as $attachment_id => $attachment ) {
                        $thumb = wp_get_attachment_image( $attachment_id, array($width, $height), true );
                    }
                }
                if ( isset($thumb) && $thumb ) {echo $thumb; } else {echo __('None');}
            break;
        default:
            break;
        } // end switch
}

আশাকরি এটা সাহায্য করবে


2

এটি কয়েকটি এসও উত্তরের সংমিশ্রণ, আশা করি এটি কাউকে সহায়তা করে!

function array_insert( $array, $index, $insert ) {
    return array_slice( $array, 0, $index, true ) + $insert +
    array_slice( $array, $index, count( $array ) - $index, true);
}

add_filter( 'manage_resource_posts_columns' , function ( $columns ) {
    return array_insert( $columns, 2, [
        'image' => 'Featured Image'
    ] );
});

আমি দেখেছি যে array_splice()কাস্টম কীগুলি আমাদের যেমন প্রয়োজন তেমন রাখে না। array_insert()আছে।


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