অ্যাডমিন তালিকা সারণীতে শিরোনাম প্রতিস্থাপন


10

এখানে আমার পরিস্থিতি: আমি আমার কাস্টম পোস্ট ধরণের সম্পাদনা সারণীতে শিরোনাম কলামের সামগ্রী ফিল্টার করার চেষ্টা করছি তবে আমি এটি কাজ করতে পারি না।

এখানে আমি চেষ্টা করেছি:

add_filter('manage_edit-mycpt_columns', 'replace_title_products');

function replace_title_products() {
    $oldtitle = get_the_title();
    $newtitle = str_replace(array("<span class='sub-title'>", "</span>"), array("", ""),$oldtitle);
    $title = esc_attr($newtitle);
    return $title;  
}

আমি কেবল <span>আমার শিরোনামে ট্যাগগুলি ফিল্টার করতে চাই । কেউ আমাকে দয়া করে সাহায্য করতে পারে?

উত্তর:


19

1. পোস্ট তালিকার কলামে পোস্টের শিরোনাম পরিবর্তন করুন

আপনি যা চেয়েছিলেন তা আমি ভুল বুঝেছি - স্পষ্টতই। আপনি এটির মতো এটি করতে পারেন:

add_action(
    'admin_head-edit.php',
    'wpse152971_edit_post_change_title_in_list'
);
function wpse152971_edit_post_change_title_in_list() {
    add_filter(
        'the_title',
        'wpse152971_construct_new_title',
        100,
        2
    );
}

function wpse152971_construct_new_title( $title, $id ) {
    //print_r( $title );
    //print_r( $id );
    return 'new';
}

admin_head-$hook_suffixহুক ব্যবহার করা ।


(অস্বীকৃতি: এটি রাখা, কারণ এটি সম্পর্কিত এবং ভাল তথ্য)

টেবিল কলাম শিরোনাম প্রতিস্থাপন

এছাড়াও আপনি কলাম টেবিল শিরোনাম ব্যবহার এবং ওভাররাইট করছেন না। এটি কীভাবে করা যায় তার জন্য কয়েকটি অনুকরণীয় কোডের নীচে:

  1. manage_{$this->screen->id}_columnsহুক উপর ভিত্তি করে

    add_filter(
        'manage_edit-post_columns',
        'wpse152971_replace_column_title_method_a'
    );
    function wpse152971_replace_column_title_method_a( $columns ) {  
        //print_r($columns);  
        $columns[ 'title' ] = 'new title';  
        return $columns;  
    }  
    
  2. manage_{$post_type}_posts_columnsহুক উপর ভিত্তি করে

    add_filter(
        'manage_post_posts_columns',
        'wpse152971_replace_column_title_method_b'
    );
    function wpse152971_replace_column_title_method_b( $posts_columns ) {
        //print_r($posts_columns);
        $posts_columns[ 'title' ] = 'new title';
        return $posts_columns;
    }
    

সর্বশেষে তবে আপনার প্রয়োজনীয় তথ্য পেতে নিম্নলিখিত কোডটি কার্যকর নয়:

add_action( 'admin_head', 'wpse152619_dbg_dev' );
function wpse152619_dbg_dev() {
    global $pagenow;
    print_r( $pagenow );
    echo '<br>';
    print_r( $_GET[ 'taxonomy' ] );
    echo '<br>';
    $current_screen = get_current_screen();
    print_r( $current_screen->id );
}

দুঃখিত আমি আমার কোডটিতে ফিরে যাওয়ার লাইনটি ভুলে গেছি ... আপনার উত্তরের জন্য ধন্যবাদ তবে আমি এটি অর্জন করার চেষ্টা করছি না। আমি শিরোনামটির জন্য কলামটির নাম পরিবর্তন করতে চাই না, আমি প্রতিটি পোস্টের জন্য এই কলামে ফিরে আসা সামগ্রীটি পরিবর্তন করতে চাই। এখনই আমার কাছে রয়েছে: "এটি আমার প্রথম শিরোনাম <span class =" উপ-শিরোনাম "> নম্বর 1 </span>" তারপরে "এটি আমার শিরোনাম <span class =" উপ-শিরোনাম "> নম্বর 2 </span> "দ্বিতীয় সারির জন্য, ইত্যাদি। আমি কী অর্জন করার চেষ্টা করছি তা আরও স্পষ্ট?
পিপো

অসাধারণ!! আমি ঠিক তাই করতে চেয়েছিলাম। অনেক ধন্যবাদ!
পিপো

i সলিউশন সমাধানের চেষ্টা 1 1. Change post title in post list columnমানগুলি পরিবর্তন হয়, আমি কীভাবে লেবেলটিরও নাম পরিবর্তন করতে পারি। ?
বিকাশকারী

@ ডেভেলপার আপনি টেবিল কলাম শিরোনাম বলতে চান? দ্বিতীয়টির নিচে বর্ণিত।
নিকোলাই

1
আমি একই কাজ করার চেষ্টা করছিলাম তবে একটি কাস্টম ট্যাক্সোনমি টেবিল শিরোনামের জন্য (যা আমার কাছে 10+ কমিয়ে দেওয়া দরকার) which আপনি এর 'লেবেল' অ্যারে প্রশাসক কলাম 'মেনু_নাম' এর জন্য একটি শর্টহ্যান্ড দিতে পারেন, তবে আশ্চর্যের বিষয় এটি টেবিলের মাথাটিকে প্রভাবিত করে না। আমি অনেকগুলি অনুসন্ধান করেছি এবং এই নিবন্ধটি প্রকাশিত হচ্ছে, করের জন্য কিছুই নয় ... সুতরাং: আপনার পদ্ধতিটি ২.১ = এ দিয়ে এটি করা যেতে পারে ('ট্যাক্সোনমি- {my_tax_name named' নামে পরিচিত কলামগুলি) আপনার পদ্ধতি ২.২ = বি দিয়ে আপনি কেবল 'শিরোনাম' এবং 'তারিখ' এবং মুদ্রণ_r প্রকাশিত হওয়ার সাথে স্ব-sertedোকানো কলামগুলি পান।
ব্যবহারকারী 3445853

1

আমি কয়েক ঘন্টা আগে ঠিক তেমন কিছু করেছি, তাই আমার কোডটি এটির চেয়ে ভাল নাও হতে পারে তবে এটি অর্জনের জন্য আপনার 2 টি হুক ব্যবহার করা দরকার। আপনার কোডটিতে আমি যা দেখেছি সেখান থেকে আপনি কোনও কাস্টম পোস্ট প্রকারটি ব্যবহার করছেন বলে মনে হচ্ছে, এই দুটি হুক হবে।

manage_post_type_posts_columns ()

manage_post_type_posts_custom_column ()

আমি manage_post_type_posts_columns()একটি নতুন শিরোনাম কলাম তৈরি করতে এবং পুরানোটিকে আনসেট করতে ফিল্টার হুক manage_post_type_posts_custom_column()ব্যবহার করেছি এবং তারপরে এই কলামটির জন্য নতুন সামগ্রী / শিরোনাম উত্পন্ন করার জন্য আমার নিজস্ব পদ্ধতি ব্যবহার করার জন্য অ্যাকশন হুক ব্যবহার করেছি।

আশা করি এটি সহায়তা করে, আপনার কোডটিও যুক্ত করেছে ...

// Replace your Title Column with the Existing one //
function replace_title_column($columns) {

    $new = array();

    foreach($columns as $key => $title) {
        if ($key=='title') 
        $new['new-title'] = 'New Title'; // Our New Colomn Name
        $new[$key] = $title;
    }

    unset($new['title']); 
    return $new;
}

// Replace the title with your custom title
function replace_title_products($column_name, $post_ID) {
    if ($column_name == 'new-title') {
        $oldtitle = get_the_title();
        $newtitle = str_replace(array("<span class='sub-title'>", "</span>"), array("", ""),$oldtitle);
        $title = esc_attr($newtitle); 
        echo $title; 
    }
}

add_filter('manage_mycpt_columns', 'replace_title_column');
add_action('manage_mycpt_custom_column', 'replace_title_products', 10, 2);

ধন্যবাদ ম্যাট আপনি কী জানেন যে বিষয়বস্তু ফিরে আসার আগে কেবল আসল "শিরোনাম" কলামটি ফিল্টার করার কোনও উপায় আছে কিনা? আসলটি অনেকগুলি ফাংশন (সম্পাদনা, দ্রুত সম্পাদনা, ট্র্যাস ইত্যাদি) নিয়ে আসায় আমি আসলেই নতুন শিরোনাম কলামটি তৈরি করতে চাই না।
পাইপো

@ এটিয়েন আমি ভয় করি না সম্ভবত অন্য কেউ আমাদের কীভাবে এটি করা যায় সে সম্পর্কে ধারণা দিতে পারে, এটিও জানতে চাই :-)
ম্যাট রয়্যাল

আমার সংশোধিত উত্তর দেখুন, নতুন কলাম তৈরি করার দরকার নেই। @ এটিয়েন
নিকোলাই

0

কলামগুলি প্রতিস্থাপন করুন

এখানে একটি উদাহরণ রয়েছে যা নির্দিষ্টগুলি যুক্ত করা এবং মুছে ফেলার পরিবর্তে কলামগুলি সম্পূর্ণরূপে প্রতিস্থাপন করে

function set_book_columns($columns) {
    return array(
        'cb' => '<input type="checkbox" />',
        'title' => __('Title'),
        'comments' => '<span class="vers comment-grey-bubble" title="' . esc_attr__( 'Comments' ) . '"><span class="screen-reader-text">' . __( 'Comments' ) . '</span></span>',
        'date' => __('Date'),
        'publisher' => __('Publisher'),
        'book_author' =>__( 'Book Author')
    );
}
add_filter('manage_book_posts_columns' , 'set_book_columns');

আরো দেখুন:manage_$post_type_posts_columns

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