如何在管理区的wp_list_table中添加列? 时间:2015-02-11 作者:Lucas Santos 所以我的问题和你在图片中看到的差不多。在我自定义的帖子类型“Products”中,如何向我的主表添加一个额外的列,如SEO Yoast所做的WP_List_Table. 我已经计算出了代码,以确定如何显示缺货功能,这取决于项目的自定义\\u字段“缺货”是否设置为true或false。这不是问题,但我如何在代码中针对表的那个区域。我会假设它是一个过滤器,不确定它是如何工作的,但如果有人能帮助我,我真的很感激。 1 个回复 最合适的回答,由SO网友:cybmeta 整理而成 我认为您需要的是一组过滤器和操作,以将自定义列添加到后期编辑屏幕:manage_edit-post_type_columns: 用于添加列manage_posts_custom_column: 用于打印列中每行的内容manage\\u edit-post\\u type\\u sortable\\u列:用于注册可排序列。未记录request: 您可能需要将此筛选器与manage_edit-post_type_sortable_columns.例如,我使用此代码添加一个可排序列,其中包含来自自定义元字段的点击后信息:add_filter( \'manage_edit-post_columns\', \'add_new_columns\' ); add_filter( \'manage_edit-post_sortable_columns\', \'register_sortable_columns\' ); add_filter( \'request\', \'hits_column_orderby\' ); add_action( \'manage_posts_custom_column\' , \'custom_columns\' ); /** * Add new columns to the post table * * @param Array $columns - Current columns on the list post */ function add_new_columns($columns){ $column_meta = array( \'hits\' => \'Hits\' ); $columns = array_slice( $columns, 0, 6, true ) + $column_meta + array_slice( $columns, 6, NULL, true ); return $columns; } // Register the columns as sortable function register_sortable_columns( $columns ) { $columns[\'hits\'] = \'hits\'; return $columns; } //Add filter to the request to make the hits sorting process numeric, not string function hits_column_orderby( $vars ) { if ( isset( $vars[\'orderby\'] ) && \'hits\' == $vars[\'orderby\'] ) { $vars = array_merge( $vars, array( \'meta_key\' => \'hits\', \'orderby\' => \'meta_value_num\' ) ); } return $vars; } /** * Display data in new columns * * @param $column Current column * * @return Data for the column */ function custom_columns($column) { global $post; switch ( $column ) { case \'hits\': $hits = get_post_meta( $post->ID, \'hits\', true ); echo (int)$hits; break; } } 结束 文章导航