在自定义帖子类型浏览页面中添加自定义列

时间:2016-05-12 作者:Helvin

我制作了一个插件,添加了一个“成员”自定义帖子类型。我自定义了编辑视图(使用编辑器挂钩),以仅获取所需的字段并将其存储在数据库中。我有像“姓名,姓氏,生日…”这样的字段

我现在想要的是使其中一些字段出现在我的成员自定义帖子类型的“浏览页面”中。我想删除例如“Thumbs,SEO,meta desc…”列,并查看具有自定义类型字段的列。

我试着和manage_posts_custom_column 钩子,但没有成功。有人能帮忙吗?

1 个回复
SO网友:Djouuuuh

下面是我的插件代码示例,我在其中设置了一个自定义帖子类型“aei\\U team\\U member”,并在管理列表中添加了两列(Prénom和Photo,其中Photo是缩略图),使用:

manage_${post_type}_posts_columns

manage_{$post_type}_posts_custom_column

更多信息可在此处找到:https://codex.wordpress.org/Plugin_API/Action_Reference/manage_posts_custom_column

我希望这有帮助!

/**
 * Adds a thumbnail column in the admin panel.
 */
function add_aei_team_member_columns($columns) {
  $new = array();
  foreach($columns as $key => $title) {
    if( $key == \'taxonomy-aei_team_member_group\' )
      $new[\'firstname\'] = \'Prénom\';
    if( $key == \'date\' )
      $new[\'thumbnail\'] = \'Photo\';
    $new[$key] = $title;
  }
  return $new;
}

add_filter(\'manage_aei_team_member_posts_columns\' , \'add_aei_team_member_columns\');

/**
 * Adds a thumbnail column in the aei_team_member list in admin panel.
 */
function thumbnail_custom_columns($column_name, $id) {
  switch( $column_name ) {
    case \'thumbnail\':
      if( has_post_thumbnail() ) {
        the_post_thumbnail( array( 80, 80 ) );
      } else { ?>
        <?php $upload_dir = wp_upload_dir(); ?>
        <?php $upload_dir = $upload_dir[\'baseurl\']; ?>
        <img src="<?php echo get_stylesheet_directory_uri(); ?>/img/default-avatar.png" height="80" width="80" />
      <?php }
      break;
    case \'firstname\':
      echo get_post_meta( $id, \'member_firstname\', true );
      break;
  }
}

add_action(\'manage_aei_team_member_posts_custom_column\', \'thumbnail_custom_columns\', 10, 2);
这给了我:

new columns

delete 列,只需在此函数中使用unset():

function my_columns_filter( $columns ) {
   unset($columns[\'author\']);
   unset($columns[\'categories\']);
   unset($columns[\'tags\']);
   unset($columns[\'comments\']);
   return $columns;
}

// Filter pages
add_filter( \'manage_edit-page_columns\', \'my_columns_filter\',10, 1 );    

// Filter Posts
add_filter( \'manage_edit-post_columns\', \'my_columns_filter\',10, 1 );

// Custom Post Type
add_filter( \'manage_edit-CUSTOMPOSTTYPE_columns\', \'my_columns_filter\',10, 1 );