Substituindo o título na tabela da lista de administração

8

Aqui está minha situação: Estou tentando filtrar o conteúdo da coluna de título na minha tabela de edição de tipo de postagem personalizada, mas não consigo trabalhar.

Veja o que tentei:

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

Eu só quero filtrar as tags <span> no meu título. Alguém poderia me ajudar por favor?

    
por Pipo 08.07.2014 / 15:20

3 respostas

17

1. Alterar o título da postagem na coluna da lista de postagens

Eu não entendi o que você queria - obviamente. Você pode fazer isso assim:

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

Fazendo uso do gancho admin_head-$hook_suffix .

(Disclaimer: Mantendo isso, porque está relacionado e boa informação)

2. Substitua o título da coluna da tabela

Além disso, você não está usando e sobrescrevendo o título da tabela de colunas. Abaixo alguns códigos exemplares sobre como fazer isso:

  1. Com base no manage_{$this->screen->id}_columns gancho

    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. Baseado no manage_{$post_type}_posts_columns gancho

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

Por último, mas não menos importante, o seguinte código é útil para obter as informações de que você precisa:

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 );
}
    
por Nicolai 08.07.2014 / 16:07
1

Acabei de fazer algo parecido algumas horas atrás, então meu código pode não ser o melhor possível, mas você precisa usar dois ganchos para conseguir isso. Como você parece estar usando um tipo de post personalizado do que eu vi no seu código, esses dois ganchos seriam.

manage_post_type_posts_columns ()

manage_post_type_posts_custom_column ()

Eu usei o gancho de filtro manage_post_type_posts_columns() para criar uma nova coluna Título e desmarque a antiga e, em seguida, o gancho manage_post_type_posts_custom_column() action para usar meu próprio método para gerar o novo conteúdo / título para essa coluna.

Espero que isso ajude, tenha adicionado o seu código também ...

// 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);
    
por Matt Royal 08.07.2014 / 16:17
0

Substituir colunas

Aqui está um exemplo que substitui completamente as colunas, em vez de adicionar e remover as específicas

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

Veja mais: insira a descrição do link aqui

    
por Super Model 30.04.2018 / 14:16