我想要做的是在清单中添加一些自定义列
例如,在admin中,单击文章,我要在其中添加自定义列。
#1 楼
为定制帖子类型创建定制列及其关联数据的钩子分别为manage_{$post_type}_posts_columns
和manage_{$post_type}_posts_custom_column
,其中{$post_type}
是定制帖子类型的名称。文档中的此示例删除了author列,添加分类法和元数据列:
// Add the custom columns to the book post type:
add_filter( 'manage_book_posts_columns', 'set_custom_edit_book_columns' );
function set_custom_edit_book_columns($columns) {
unset( $columns['author'] );
$columns['book_author'] = __( 'Author', 'your_text_domain' );
$columns['publisher'] = __( 'Publisher', 'your_text_domain' );
return $columns;
}
// Add the data to the custom columns for the book post type:
add_action( 'manage_book_posts_custom_column' , 'custom_book_column', 10, 2 );
function custom_book_column( $column, $post_id ) {
switch ( $column ) {
case 'book_author' :
$terms = get_the_term_list( $post_id , 'book_author' , '' , ',' , '' );
if ( is_string( $terms ) )
echo $terms;
else
_e( 'Unable to get author(s)', 'your_text_domain' );
break;
case 'publisher' :
echo get_post_meta( $post_id , 'publisher' , true );
break;
}
}
评论
谢谢你的帮助!!!这太棒了!没有关于stackoverflow的明确文档!!! :D干杯
–罗德里戈·祖鲁加(Rodrigo Zuluaga)
19年5月30日在2:12
没有设置列号的选项吗?像column_index [2]。因为custom_column出现在列的末尾。
– Dilip Gupta
19年6月21日在8:52
@DilipGupta $ columns是一个数组,可以在返回之前重新排序
– fogx
19年7月16日在10:39
#2 楼
我写了一个结合了manage_{$post_type}_posts_columns
过滤器和manage_{$post_type}_posts_custom_column
操作的函数。function add_admin_column($column_title, $post_type, $cb){
// Column Header
add_filter( 'manage_' . $post_type . '_posts_columns', function($columns) use ($column_title) {
$columns[ sanitize_title($column_title) ] = $column_title;
return $columns;
} );
// Column Content
add_action( 'manage_' . $post_type . '_posts_custom_column' , function( $column, $post_id ) use ($column_title, $cb) {
if(sanitize_title($column_title) === $column){
$cb($post_id);
}
}, 10, 2 );
}
add_admin_column(__('EAN'), 'product', function($post_id){
echo get_post_meta( $post_id , 'ean' , true );
});
#3 楼
我不确定它是否默认为要显示为列的自定义元数据,但是您可以考虑使用此免费插件,该插件允许您添加列以显示自定义字段。 https://wordpress.org/plugins/codepress-admin-columns/专业版甚至允许您向这些列添加过滤,排序和内联编辑。
评论
不使用!将会破坏您的网站:PHP致命错误:无法在[已编辑] \\ wp-content中重新声明AC()(先前在[已编辑] \\ wp-content \\ themes \ [已编辑] \\ functions.php:628中声明)第9行的\\ plugins \\ codepress-admin-columns \\ api.php
– Peter Kionga-Kamau
18年11月6日在20:17
@ PeterKionga-Kamau这是您特定主题的兼容性问题。您发布的错误不会与默认的WP主题一起出现(例如二十二十);我还将插件与Divi主题一起使用,发现它非常有用
– Philipp
19-10-8在19:34
是否没有某种命名空间或使用不太通用的函数名称来避免这种情况?
– Peter Kionga-Kamau
19-10-9在20:06
评论
我问了(并回答了)相同的问题(包括如何使它们可排序):wordpress.stackexchange.com/questions/253680 / ...