2023/2/2534 次阅读0 条评论
WordPress后台文章列表页添加自定义列和排序
在WordPress后台的文章列表页面,默认情况下只有文章标题、作者、发布时间等等。但使用个别wordpress主题的时候可能会有各种文章参数,为了维护网站的方便,所以往往需要在后台文章列表里添加某一个列表栏目,显示自定义的参数。
那么如何在文章后台添加这些的自定义列呢?下面我们就一起来学习一下WP后台添加自定义列的简单方法。下面已本程序为例,添加文章喜欢人数。
打开functions.php函数文件,在文件最末尾处开始添加。
添加列名称
Terminal
add_filter('manage_posts_columns' , 'add_posts_likes_column');function add_posts_likes_column($columns) { $columns['likes'] = '喜欢'; return $columns;}
给这新加列赋值
Terminal
add_action('manage_posts_custom_column', 'posts_likes_column_content', 10, 2);function posts_likes_column_content($column_name, $post_id) { if ($column_name == 'likes') { $likes = get_post_meta($post_id, 'likes', true); echo $likes?$likes:0; }}
到这里其实已经可以在后台看到新增的“喜欢”自定义列了,但是这有个问题,不能排序。
在表头“喜欢”列名处添加排序链接
Terminal
add_filter(\"manage_edit-post_sortable_columns\", \"posts_likes_column_make_sortable\" );function posts_likes_column_make_sortable($columns) { $columns['likes'] = 'likes'; return $columns;}
设置排序
Terminal
add_filter( 'request', 'posts_likes_column_orderby' );function posts_likes_column_orderby( $vars ) { if ( isset( $vars['orderby'] ) && 'likes' == $vars['orderby'] ) { $vars = array_merge( $vars, array( 'meta_key' => 'likes', 'orderby' => 'meta_value_num' ) ); } return $vars;}
看下效果,完工。
