カスタム投稿タイプにカスタム列を追加しました。
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' );
}
}
カスタム列の「つまみ」は正しく表示されますが、カテゴリは表示されなくなります。画像を見てください。
これは何の原因ですか?カスタム列を削除するとカテゴリが表示されます。
ここで私はこのコードとその正常に動作することをここでテストしました。
以下のコードでダミーの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')
。これはあなたにあなたのカスタム投稿タイプへのデフォルトのカテゴリーを取得させます。
それではここであなたのアクションフックを書き換えます。そして私達は同じ機能をそれの変更なしで使用する。
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
デフォルトの代わりにここでカスタム投稿タイプ名を指定する必要があります。
ここに私はあなたのためにスクリーンショットを添付しました、
列全体を再定義する代わりにThumb
列を追加してください。
function custom_columns($columns) {
return array_merge( $columns,
array( 'thumb' => __('Thumb', 'mytextdomain' ),
) );
}
また、unset
、Tags
、およびAuthor
列を削除したときに、誤ってCategories列をComments
にしたかどうかも確認してください。
_編集_
2番目のスクリーンショットの右上隅に小さな検索ボタンのラベルが表示されたら、実際にカスタム投稿タイプを使用していることがわかります。その場合、デフォルトの "Categories"をCPTに関連付けたい場合は、CPTを登録する現在の引数の配列にこのコードを使用します。
'taxonomies' => array('category');
また、フィルタをmanage_post_type_posts_columns
とmanage_post_type_posts_columns
に変更します。 post_type
はあなたのCPTです。
コメントを寄せてくれたcybmetaとPieterGoosenに感謝します。
銀行を壊さずに新しい列を追加したい場合は、最初に古い値を格納することで、確実にそこにあるものを維持し、必要なものだけを追加することができます。見たくない場合は、画面オプションで調整してください。
$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 "-";
}
}
スライダー あなたの投稿名を変更する/ 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;
}
}