WordPress后台文章列表添加自定义列方法
WordPress后台文章列表默认只有标题、作者、分类、标签、日期和评论等列,但有很多时候我们自己已添加了文章自定义字段来存储一些必要的信息,而这些自定义字段信息对网站管理员来说又比较重要,所以就需要将这些信息也显示在后台文章列表栏中来更直观的查看编辑文章。为了实现如上图效果,我们需要为WordPress后台添加自定义字段列表。本文就教您如何在后台文章列表添加自定义列并具有排序功能,以下以文章阅读数为例说明具体实现方法:
1、首先需添加自定义字段列到后台文章列表处:
//添加文章阅读数列表 function add_views_column($columns) { $columns['views'] = '阅读数'; return $columns; } add_filter('manage_posts_columns' , 'add_views_column');
2、上一步只是添加了列表,而不能显示任何内容,所有这步要为该列填充数据:
//为文章阅读数列表填充数据 function views_column_content($column_name, $post_id) { if ($column_name == 'views') { $views_value = get_post_meta( $post_id, '_views', true ); echo ($views_value / 2) . '次'; } } add_action('manage_posts_custom_column', 'views_column_content', 10, 2);
3、用add_filter功能来为文章阅读数列表添加排序功能:
//实现文章阅读数列表排序 function views_column_table_sorting( $columns ) { $columns['views'] = 'views'; return $columns; } add_filter( 'manage_edit-post_sortable_columns', 'views_column_table_sorting' ); //根据自定义域views排序 function views_column_orderby( $vars ) { if ( isset( $vars['orderby'] ) && $vars['orderby'] == 'views' ) { $vars['orderby'] = 'meta_value_num'; $vars['meta_key'] = '_views'; } return $vars; } add_filter( 'request', 'views_column_orderby' );
以下是后台文章列表添加自定义列完整代码:
/* 后台文章列表添加自定义列 代码来源: www.wpzxbj.com */ //添加文章阅读数列表 function add_views_column($columns) { $columns['views'] = '阅读数'; return $columns; } add_filter('manage_posts_columns' , 'add_views_column'); //为文章阅读数列表填充数据 function views_column_content($column_name, $post_id) { if ($column_name == 'views') { $views_value = get_post_meta( $post_id, '_views', true ); echo ($views_value / 2) . '次'; } } add_action('manage_posts_custom_column', 'views_column_content', 10, 2); //实现文章阅读数列表排序 function views_column_table_sorting( $columns ) { $columns['views'] = 'views'; return $columns; } add_filter( 'manage_edit-post_sortable_columns', 'views_column_table_sorting' ); //根据自定义域views排序 function views_column_orderby( $vars ) { if ( isset( $vars['orderby'] ) && $vars['orderby'] == 'views' ) { $vars['orderby'] = 'meta_value_num'; $vars['meta_key'] = '_views'; } return $vars; } add_filter( 'request', 'views_column_orderby' );
代码说明:请将以上代码插入主题fuction.php即可。以上代码均以自定义域views为例,请根据自己的实际需要替换成自己的自定义域名。如需添加多个自定义域列表,可按以上方法添加多个。希望本文对你有所帮助!
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END