शीर्षक को व्यवस्थापक सूची तालिका में बदलना


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हुक का उपयोग करना ।


(अस्वीकरण: इसे रखना, क्योंकि यह संबंधित है और अच्छी जानकारी है)

2. तालिका स्तंभ शीर्षक बदलें

इसके अलावा आप स्तंभ तालिका शीर्षक का उपयोग और अधिलेखित नहीं कर रहे हैं। यह कैसे करना है पर कुछ अनुकरणीय कोड के नीचे:

  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 );
}

क्षमा करें, मैं अपने कोड में रिटर्न लाइन भूल गया हूं ... आपके उत्तर के लिए धन्यवाद लेकिन यह वह नहीं है जिसे मैं प्राप्त करने की कोशिश कर रहा हूं। मैं शीर्षक के लिए कॉलम का नाम नहीं बदलना चाहता, मैं प्रत्येक पोस्ट के लिए इस कॉलम में दी गई सामग्री को बदलना चाहता हूं। अभी मेरे पास है: "यह मेरी शीर्षक <स्पैन क्लास =" सब-टाइटल "> नंबर 1 </ span>" पहली पंक्ति के लिए फिर "यह मेरा शीर्षक <स्पैन क्लास =" सब-टाइटल "> नंबर २ </ span> "दूसरी पंक्ति, आदि के लिए यह अधिक स्पष्ट है कि मैं क्या हासिल करने की कोशिश कर रहा हूं?
पिपो

बहुत बढ़िया!! वह वही है जो मैं करना चाहता था। आपका बहुत बहुत धन्यवाद!
पिपो

आई सॉल्यूशन सॉल्यूशन 1 1. Change post title in post list columnवैल्यू चेंज हैं, मैं लेबल को कैसे भी रीनेम कर सकता हूं। ?
डेवलपर

@Developer आप तालिका स्तंभ शीर्षक का मतलब है? जैसे दूसरे के तहत वर्णित है।
निकोलई

1
मैं ऐसा ही करने की कोशिश कर रहा था, लेकिन एक कस्टम TAXONOMY टेबल हैडर के लिए (जिसे मुझे छोटा करना होगा, क्योंकि मेरे पास 10+ है)। आप इसके 'लेबल' सरणी में व्यवस्थापक कॉलम 'menu_name' के लिए एक आशुलिपि दे सकते हैं, लेकिन अजीब बात है कि तालिका सिर को प्रभावित नहीं करती है। मैंने बहुत खोज की और यह लेख सामने आता रहा, कुछ भी टैक्सोनोमीज़ के लिए नहीं ... SO: आपकी विधि 2.1 = A के साथ, यह किया जा सकता है ('taxonomy- {my_tax_name}' नाम के कॉलम), आपकी विधि के साथ 2.2 = B केवल आप जैसे ही प्रिंट_ पता चलता है, 'शीर्षक' और 'तारीख' और स्व-सम्मिलित कॉलम प्राप्त करें।
user3445853

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.