Edição personalizada pós coluna - categoria não mostrando

2

Eu adicionei uma coluna personalizada a um tipo de postagem personalizado:

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

A coluna personalizada "thumb" é exibida corretamente, mas a categoria não é mais exibida. Por favor, veja a imagem.

O que está causando isso? As categorias mostram se eu removo as colunas personalizadas.

    
por at least three characters 04.12.2015 / 13:42

4 respostas

5

Aqui eu testei este código e está funcionando bem e etapas aqui.

  1. Estou apenas criando um fictício custom_post_type here book com o código a seguir.

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

Aqui não tenho certeza, você usou essa linha. 'taxonomies' => array('category', 'post_tag') . Este obtém os códigos padrão para o seu tipo de postagem personalizado.

  1. Agora vamos reescrever seu gancho de ação aqui. e nós usamos as mesmas funções sem mudança.

    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: acabei de editar apenas uma linha no seu código. %código%. Temos que especificar seu tipo de postagem personalizado no seu gancho de ação. Essa é a última coisa aqui. add_filter('manage_edit-book_columns', 'custom_columns', 10); Em vez do padrão, temos que especificar o nome do tipo de postagem personalizado aqui.

Aqui eu anexei uma captura de tela para você,

    
por Kvvaradha 11.12.2015 / 13:24
2

Tente adicionar a coluna Thumb em vez de redefinir as colunas inteiras.

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

Além disso, verifique se você acidentalmente unset da coluna Categorias quando removeu as colunas Tags , Author e Comments .

EDITAR
Depois de ver o pequeno rótulo do botão de pesquisa no canto superior direito da segunda tela, posso ver que você está realmente usando um tipo de postagem personalizada. Nesse caso, se você quiser associar as "Categorias" padrão ao seu CPT, use este trecho de código com a matriz atual de argumentos que registra seu CPT:

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

Além disso, altere seus filtros para manage_post_type_posts_columns e manage_post_type_posts_columns . Onde post_type é seu CPT.

Obrigado ao cybmeta e PieterGoosen pelos comentários.

    
por Abhik 11.12.2015 / 11:38
1

Se você quiser adicionar novas colunas sem quebrar o banco, eu acho que armazenar os valores antigos primeiro ajuda a manter o que está lá e só adiciona o que você precisa. Se você quiser ver menos, ajuste as opções de tela.

$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 "-";
    }
}
por jgraup 11.12.2015 / 12:17
0

slider para alterar o nome do seu post e slider_category para alterar o nome da sua categoria de taxonomia

    <?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;
    }
}
    
por ravi patel 16.12.2015 / 12:39