web-dev-qa-db-ja.com

カスタム編集投稿列 - カテゴリが表示されていません

カスタム投稿タイプにカスタム列を追加しました。

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

カスタム列の「つまみ」は正しく表示されますが、カテゴリは表示されなくなります。画像を見てください。

enter image description here 

これは何の原因ですか?カスタム列を削除するとカテゴリが表示されます。

ここで私はこのコードとその正常に動作することをここでテストしました。

  1. 以下のコードでダミーのcustom_post_typeここbookを作成しているだけです。

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

ここで私はよくわかりません、あなたはこの線を使いました。 'taxonomies' => array('category', 'post_tag')。これはあなたにあなたのカスタム投稿タイプへのデフォルトのカテゴリーを取得させます。

  1. それではここであなたのアクションフックを書き換えます。そして私達は同じ機能をそれの変更なしで使用する。

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

注:私はあなたのコードの1行だけを編集しました。 add_filter('manage_edit-book_columns', 'custom_columns', 10);。私たちはあなたのアクションフックであなたのカスタム投稿タイプを指定しなければなりません。これが究極のことです。 manage_edit-book_columnsデフォルトの代わりにここでカスタム投稿タイプ名を指定する必要があります。

ここに私はあなたのためにスクリーンショットを添付しました、

enter image description here 

5
Kvvaradha

列全体を再定義する代わりにThumb列を追加してください。

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

また、unsetTags、およびAuthor列を削除したときに、誤ってCategories列をCommentsにしたかどうかも確認してください。

_編集_
2番目のスクリーンショットの右上隅に小さな検索ボタンのラベルが表示されたら、実際にカスタム投稿タイプを使用していることがわかります。その場合、デフォルトの "Categories"をCPTに関連付けたい場合は、CPTを登録する現在の引数の配列にこのコードを使用します。

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

また、フィルタをmanage_post_type_posts_columnsmanage_post_type_posts_columnsに変更します。 post_typeはあなたのCPTです。

コメントを寄せてくれたcybmetaとPieterGoosenに感謝します。

2
Abhik

銀行を壊さずに新しい列を追加したい場合は、最初に古い値を格納することで、確実にそこにあるものを維持し、必要なものだけを追加することができます。見たくない場合は、画面オプションで調整してください。

$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 "-";
    }
}
1
jgraup

スライダー あなたの投稿名を変更する/ slider_category を変更する あなたの分類学のカテゴリー名

    <?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;
    }
}
0
ravi patel