Columna de edición personalizada: la categoría no se muestra

2

Agregué una columna personalizada a un tipo de publicación personalizada:

add_filter('manage_posts_columns', 'custom_columns', 10);  
add_action('manage_posts_custom_column', 'custom_columns_thumb', 10, 2);  

function custom_columns($columns) {         
    $columns = array(
        'cb' => '<input type="checkbox" />',
        'title' => 'Title',
        'categories' => 'Categories', // not showing
        'thumb' => __('Thumb'),
        'date' => __( 'Date' )
    );
    return $columns;
}  

function custom_columns_thumb($column_name, $id){  
    if($column_name === 'thumb') {  
        echo the_post_thumbnail( 'thumb' );  
    }  
}     

La columna personalizada "pulgar" se muestra correctamente pero la categoría ya no se muestra. Por favor vea la imagen.

¿Qué está causando esto? Las categorías muestran si elimino las columnas personalizadas.

    
pregunta at least three characters 04.12.2015 - 13:42

4 respuestas

5

Aquí probé este código y está funcionando bien y los pasos aquí.

  1. Solo estoy creando un dummy custom_post_type here book con el siguiente código.

     function kv_custom_post_books() {
       $args = array(
        'public' => true,
        'label'  => 'Books',
        'taxonomies' => array('category', 'post_tag') , 
        'supports'           => array( 'title', 'editor', 'thumbnail' )
      );
     register_post_type( 'book', $args );
    }
    add_action( 'init', 'kv_custom_post_books' );
    

Aquí no estoy seguro, usaste esta línea. 'taxonomies' => array('category', 'post_tag') . Éste te ofrece las categorías predeterminadas para tu tipo de publicación personalizada.

  1. Ahora reescribiremos tu gancho de acción aquí. y usamos las mismas funciones sin cambios en él.

    add_filter('manage_edit-book_columns', 'custom_columns', 10);  
    add_action('manage_posts_custom_column', 'custom_columns_thumb', 10, 2);  
    
    function custom_columns($columns) {         
       $columns = array(
          'cb' => '<input type="checkbox" />',
          'title' => 'Title',
          'categories' => 'Categories', // not showing
          'thumb' => __('Thumb'),
          'date' => __( 'Date' )
       );
      return $columns;
    }  
    
    function custom_columns_thumb($column_name, $id){  
      if($column_name === 'thumb') {  
          echo the_post_thumbnail( 'thumb' );  
      }  
    }
    

Nota: Acabo de editar solo una línea en tu código. %código%. Tenemos que especificar su tipo de mensaje personalizado en su gancho de acción. Esto es lo último aquí. add_filter('manage_edit-book_columns', 'custom_columns', 10); En lugar del valor predeterminado, tenemos que especificar el nombre de tipo de publicación personalizado aquí.

Aquí adjunto una captura de pantalla para ti,

    
respondido por el Kvvaradha 11.12.2015 - 13:24
2

Intente agregar la columna Thumb en lugar de redefinir todas las columnas.

function custom_columns($columns) {  
    return array_merge( $columns, 
        array( 'thumb' => __('Thumb', 'mytextdomain' ),
        ) );
}   

Además, asegúrate de que accidentalmente unset la columna Categorías cuando elimines las columnas Tags , Author y Comments .

EDIT
Después de ver la pequeña etiqueta del botón de búsqueda en la esquina superior derecha de la segunda captura de pantalla, puedo ver que está utilizando un tipo de publicación personalizada. En ese caso, si desea asociar las "Categorías" predeterminadas a su CPT, use este fragmento de código con la matriz actual de argumentos que registra su CPT:

'taxonomies' => array('category');

También, cambia tus filtros a manage_post_type_posts_columns y manage_post_type_posts_columns . Donde post_type es tu CPT.

Gracias a cybmeta y PieterGoosen por los comentarios.

    
respondido por el Abhik 11.12.2015 - 11:38
1

Si desea agregar nuevas columnas sin romper el banco, primero encuentro que almacenar los valores antiguos ayuda a asegurarse de mantener lo que está allí y solo agregar lo que necesita. Si desea ver menos, entonces ajuste con las opciones de pantalla.

$post_type = 'posts';
add_filter("manage_${post_type}_posts_columns", 'posts_set_custom_columns', 10);
add_action("manage_${post_type}_posts_custom_column", 'posts_render_custom_columns', 10, 2);

function posts_set_custom_columns ($columns) {

    // save existing settings for columns

    $before = array(
        'cb' => $columns ['cb'],
        'title' => $columns ['title'],
        'categories' => $columns ['categories'],
    );

    // remove all the items before our new columns

    foreach ($before as $inx => $label) {
        unset($columns[$inx]);
    }

    // push our new columns to the front

    $columns = array_merge(
        array(
            'thumb' => __('Thumb'),
    ), $columns);

    // put the first items back in the front

    $columns = array_merge($before, $columns);

    return $columns;
}

function posts_render_custom_columns ($column_name, $id) {
    if($column_name === 'thumb') {

        $size = 'thumbnail';

        // display the image or a mark to let us know it's missing
        if ( has_post_thumbnail( $id ))
            the_post_thumbnail( $size );
         else
             echo "-";
    }
}
respondido por el jgraup 11.12.2015 - 12:17
0

control deslizante para cambiar el nombre de tu publicación y slider_category para cambiar el nombre de su categoría de taxonomía

    <?php
/** Manage column Function */
add_filter("manage_edit-slider_columns", "slider_edit_columns");
add_action("manage_posts_custom_column", "slider_custom_columns");

function slider_edit_columns($columns) {
    $columns = array(
        "cb" => "<input type=\"checkbox\" />",
        "title" => "Title",
        "slider_category" => "Categories",  
        "date" => "Date",
    );
    return $columns;
}

function slider_custom_columns($column) {
    global $post;
    switch ($column) {
       case 'thumb':
             echo the_post_thumbnail( 'thumb' );  
        break;
        case "slider_category":  
            echo $cat = strip_tags(get_the_term_list($post->ID, 'slider_category', '', ', ',''));  
        break;  
    default:
      break;
    }
}
    
respondido por el ravi patel 16.12.2015 - 12:39

Lea otras preguntas en las etiquetas