Reemplazando el título en la tabla de la lista de administradores

8

Aquí está mi situación: estoy tratando de filtrar el contenido de la columna del título en mi tabla de edición de tipo de publicación personalizada pero no puedo hacer que funcione.

Esto es lo que he intentado:

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

Solo quiero filtrar las etiquetas <span> en mi título. ¿Podría alguien ayudarme por favor?

    
pregunta Pipo 08.07.2014 - 15:20

3 respuestas

17

1. Cambiar el título de la publicación en la columna de la lista de publicaciones

No entendí lo que querías, obviamente. Puedes hacerlo así:

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

Haciendo uso del admin_head-$hook_suffix .

(Descargo de responsabilidad: Mantener esto, porque está relacionado y es una buena información)

2. Reemplace el título de la columna de la tabla

Además, no está utilizando y sobrescribiendo el título de la tabla de columnas. A continuación un código ejemplar sobre cómo hacerlo:

  1. Basado en el 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. Basado en el 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, pero no menos importante, el siguiente código es útil para obtener la información que necesita:

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

Acabo de hacer algo similar hace unas horas, así que mi código podría no ser lo mejor que podría ser, pero necesitas usar 2 ganchos para lograrlo. Como parece que estás usando un tipo de publicación personalizada de lo que vi en tu código, estos dos ganchos serían.

manage_post_type_posts_columns ()

manage_post_type_posts_custom_column ()

He usado el gancho de filtro manage_post_type_posts_columns() para crear una nueva columna de Título y desarmar la antigua y luego el enganche de acción manage_post_type_posts_custom_column() para usar mi propio método para generar el nuevo contenido / título para esta columna.

Espero que esto ayude, también he agregado tu código ...

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

Reemplazar columnas

Aquí hay un ejemplo que reemplaza completamente las columnas, en lugar de agregar y eliminar columnas 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');

Vea más: ingrese la descripción del enlace aquí

    
respondido por el Super Model 30.04.2018 - 14:16

Lea otras preguntas en las etiquetas