Yönetici listesi tablosundaki başlığın değiştirilmesi


10

İşte benim durumum: Özel yazı türü düzenleme tablomdaki başlık sütununun içeriğini filtrelemeye çalışıyorum ama çalışamıyorum.

İşte ne denedim:

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

Sadece başlığımdaki <span>etiketleri filtrelemek istiyorum . Birisi bana yardım edebilir mi, lütfen?

Yanıtlar:


19

1. Yazı listesi sütununda yazı başlığını değiştirin

Ne istediğini yanlış anladım - açıkçası. Bunu şöyle yapabilirsiniz:

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_suffixKanca kullanımı .


(Feragatname: Bunun saklanması, ilgili ve iyi bilgiler olması nedeniyle)

2. Tablo sütunu başlığını değiştirin

Ayrıca sütun tablosu başlığını kullanmıyor ve üzerine yazmıyorsunuz. Bunun nasıl yapılacağıyla ilgili bazı örnek kodların altında:

  1. Göre manage_{$this->screen->id}_columnskanca

    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. Göre manage_{$post_type}_posts_columnskanca

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

Son fakat en az değil, aşağıdaki kod ihtiyacınız olan bilgileri almak için kullanışlıdır:

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

Maalesef kodumdaki dönüş hattını unuttum ... Cevabınız için teşekkürler ama bu elde etmeye çalıştığım şey değil. Başlık için sütunun adını değiştirmek istemiyorum, her yazı için bu sütunda döndürülen içeriği değiştirmek istiyorum. Şu anda var: "Bu benim başlık <span class =" alt başlık "> sayı 1 </span>" ilk satır sonra "Bu benim başlık <span class =" alt başlık "> sayı 2 </span> "İkinci sıra için vs. Neyi başarmaya çalıştığım daha açık mı?
Pipo

Korku veren !! Ben de tam olarak bunu yapmak istedim. Çok teşekkürler!
Pipo

i Denenmiş Çözüm 1 1. Change post title in post list columnDeğerler Değişikliktir, Etiketi Nasıl Yeniden Adlandırabilirim. ?
Geliştirici

@Developer Tablo sütun başlığı mı demek istediniz? Saniyede anlatıldığı gibi.
Nicolai

1
Ben de aynı şeyi yapmaya çalışıyordum ama özel bir TAXONOMY tablo başlığı için (10'dan fazla olması gerektiği gibi kısaltılması gerekiyor). 'Labels' dizisinde 'menu_name' yönetici sütunu için bir kısayol verebilirsiniz, ancak garip bir şekilde tablo başlığını etkilemez. Ben çok araştırdım ve bu makale gelmeye devam etti, taksonomiler için hiçbir şey ... SO: Yöntem 2.1 = A ile yapılabilir ('taksonomi- {my_tax_name}' adlı sütunlar), yalnızca Yöntem 2.2 = B ile print_r'de görüldüğü gibi 'başlık', 'tarih' ve kendi içine eklenen sütunlar olsun.
user3445853

1

Sadece birkaç saat önce benzer bir şey yaptım, bu yüzden kodum olabilir en iyi olmayabilir ama bunu başarmak için 2 kanca kullanmanız gerekir. Kodunuzda gördüğüm özel bir yazı türü kullanıyor gibi göründüğünüz gibi, bu iki kanca olurdu.

manage_post_type_posts_columns ()

manage_post_type_posts_custom_column ()

manage_post_type_posts_columns()Yeni bir Başlık sütunu oluşturmak için filtre kancasını kullandım ve eskisini ve ardından manage_post_type_posts_custom_column()eylem kancasını bu sütun için yeni içerik / başlık oluşturmak için kendi yöntemimi kullanmak üzere kullandım.

Umarım bu yardımcı olur, kodunuzu da eklediniz ...

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

Teşekkürler Matt. İçerik döndürülmeden önce yalnızca orijinal "başlık" sütununu filtrelemenin bir yolu olup olmadığını biliyor musunuz? Orijinal bir çok işlevle (düzenleme, hızlı düzenleme, çöp kutusu, vb.) Geldiği için gerçekten yeni bir başlık sütunu oluşturmak istemiyorum.
Pipo

@Etienne Korkmuyorum. Belki başka biri bize bunu nasıl yapacağımız hakkında bir fikir verebilir, ayrıca bilmek istiyorum :-)
Matt Royal

Düzeltilmiş cevabımı görün, yeni bir sütun oluşturmaya gerek yok. @Etienne
Nicolai

0

Sütunları Değiştir

Belirli sütunları eklemek ve kaldırmak yerine sütunları tamamen değiştiren bir örnek

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

Daha fazla gör:manage_$post_type_posts_columns

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.