WordPress教程

WordPress 后台文章列表添加自定义列简单方法

阿里云

WordPress 后台文章列表默认情况下只有文章标题、作者、发布时间等等,为了维护网站的方便,我们往往需要在后台文章列表里添加自定义列表,用于显示某个值。

例如下图就是在后台文章列表里添加了一个自定义列,用于显示文章的修改时间。

如何在文章后台添加这些的自定列呢?下面介绍一下 WP 后台添加自定义列的简单方法。

也想出现在这里?联系我们
创客主机

第一步,要给自定义列添加标题。如:列标题为【修改时间】

  1. //添加文章列表
  2. function add_views_column($columns) {
  3. $columns['post_modified'] = '修改时间';
  4. return $columns;
  5. }
  6. add_filter('manage_posts_columns' , 'add_views_column');

第二步:给自定义列,每列显示什么内容

  1. //为文章阅读数列表填充数据
  2. function views_column_content($column_name, $post_id) {
  3. if ($column_name == 'post_modified') {
  4. $views_value = get_the_modified_time('Y-n-j');
  5. echo ('-'.$views_value );
  6. }
  7. }
  8. add_action('manage_posts_custom_column', 'views_column_content', 10, 2);

将上面二个代码全部放到自己模板的 functions.php 里面,这样就可以在网站后台自定义一个修改时间的列了。

如果你想把文章的自定义字段也显示在自定义列里,可以使用下面的代码:

  1. //添加百度收录
  2. function add_baidu_column($columns) {
  3. $columns['post_baidu'] = '百度收录';
  4. return $columns;
  5. }
  6. add_filter('manage_posts_columns' , 'add_baidu_column');
  7.  
  8. //为百度收录列表填充数据
  9. function baidu_column_content($column_name, $post_id) {
  10. if ($column_name == 'post_baidu') {
  11. $baidu_value = get_post_meta($post_id,"baidusl",true);
  12. if($baidu_value == '1'){echo '<span style="color:#69c;">[已收录]</span>';}else{echo '<span style="color:#69c;">[未收录]</span>';}
  13. }
  14. }
  15. add_action('manage_posts_custom_column', 'baidu_column_content', 10, 2);

扩展写法

下面是另一种写法,效果都是一样的,如下在文章和页面列表添加文章 id 的自定义列,下面的代码就很有用了:

  1.     /**********文章***********/  
  2.         add_filter('manage_posts_columns', 'add_new_posts_columns');   
  3.         function add_new_posts_columns($book_columns) {   
  4.  
  5.             $new_columns['cb'] = '<input type="checkbox" />';   
  6.             $new_columns['id'] = __('ID');   
  7.             $new_columns['title'] = _x( 'Title', 'column name' );   
  8.             $new_columns['author'] = __('Author');   
  9.             $new_columns['categories'] = __('Categories');   
  10.             $new_columns['tags'] = __('Tags');   
  11.             $new_columns['date'] = _x('Date', 'column name');   
  12.             return $new_columns;   
  13.         }   
  14.         add_action('manage_posts_custom_column', 'manage_posts_columns', 10, 2);   
  15.         function manage_posts_columns($column_name, $id) {   
  16.             global $wpdb;   
  17.             switch ($column_name) {   
  18.             case 'id':   
  19.                 echo $id;   
  20.                 break;   
  21.             default:   
  22.                 break;   
  23.             }   
  24.         }   
  25.         /**************页面************/  
  26.         add_filter('manage_pages_columns', 'add_new_pages_columns');   
  27.         function add_new_pages_columns($book_columns) {   
  28.  
  29.             $new_columns['cb'] = '<input type="checkbox" />';   
  30.             $new_columns['id'] = __('ID');   
  31.             $new_columns['title'] = _x( 'Title', 'column name' );   
  32.             $new_columns['author'] = __('Author');   
  33.             $new_columns['date'] = _x('Date', 'column name');   
  34.             return $new_columns;   
  35.         }   
  36.         add_action('manage_pages_custom_column', 'manage_pages_columns', 10, 2);   
  37.         function manage_pages_columns($column_name, $id) {   
  38.             global $wpdb;   
  39.             switch ($column_name) {   
  40.             case 'id':   
  41.                 echo $id;   
  42.                 break;   
  43.             default:   
  44.                 break;   
  45.             }   
  46.         }

用上面分享的代码,id 是显示在最左侧的,宽度也没法自定义,好处是你可以增加自定义字段的列,可操作性强。如果你觉得难看的话,可以使用下面的代码,可以让 WordPress 后台显示文章 id、分类目录 id、链接分类 ID 等。

  1. // Hooks + Filters
  2.     add_action( 'admin_head', array('WPSiteShowIDs', 'add_css'));
  3.     // For Post Management
  4.     add_filter( 'manage_posts_columns', array('WPSiteShowIDs', 'add_column') );
  5.     add_action( 'manage_posts_custom_column', array('WPSiteShowIDs', 'add_value'), 10, 2 );
  6.     // For Page Management
  7.     add_filter( 'manage_pages_columns', array('WPSiteShowIDs', 'add_column') );
  8.     add_action( 'manage_pages_custom_column', array('WPSiteShowIDs', 'add_value'), 10, 2 );
  9.     // For Media Management
  10.     add_filter( 'manage_media_columns', array('WPSiteShowIDs', 'add_column') );
  11.     add_action( 'manage_media_custom_column', array('WPSiteShowIDs', 'add_value'), 10, 2 );
  12.     // For Link Management
  13.     add_filter( 'manage_link-manager_columns', array('WPSiteShowIDs', 'add_column') );
  14.     add_action( 'manage_link_custom_column', array('WPSiteShowIDs', 'add_value'), 10, 2 );
  15.     // For Link_Category Management
  16.     add_action( 'manage_edit-link_category_columns', array('WPSiteShowIDs', 'add_column') );
  17.     add_filter( 'manage_link_category_custom_column', array('WPSiteShowIDs', 'add_return_value'), 10, 3 );
  18.     // For Category Management
  19.     add_action( 'manage_edit-link-categories_columns', array('WPSiteShowIDs', 'add_column') );
  20.     add_filter( 'manage_link_categories_custom_column', array('WPSiteShowIDs', 'add_return_value'), 10, 3 );
  21.     // For User Management
  22.     add_action( 'manage_users_columns', array('WPSiteShowIDs', 'add_column') );
  23.     add_filter( 'manage_users_custom_column', array('WPSiteShowIDs', 'add_return_value'), 10, 3 );
  24.     // For Comment Management
  25.     add_action( 'manage_edit-comments_columns', array('WPSiteShowIDs', 'add_column') );
  26.     add_action( 'manage_comments_custom_column', array('WPSiteShowIDs', 'add_value'), 10, 2 );
  27.     add_action('admin_init', array('WPSiteShowIDs', 'custom_objects'));
  28.     class WPSiteShowIDs {
  29.         static function custom_objects() {
  30.             // For Custom Taxonomies
  31.             foreach ( get_taxonomies(array('public'   => true), 'names') as $custom_taxonomy ) {
  32.                 if (isset($custom_taxonomy)) {
  33.                     add_action("manage_edit-" . $custom_taxonomy . "_columns", array('WPSiteShowIDs', 'add_column'));
  34.                     add_filter("manage_" . $custom_taxonomy . "_custom_column", array('WPSiteShowIDs', 'add_return_value'), 10, 3);
  35.                 }
  36.             }
  37.             // For Custom Post Types
  38.             foreach (get_post_types(array('public'   => true ), 'names') as $post_type) {
  39.                 if (isset($post_type)) {
  40.                     add_action("manage_edit-". $post_type . "_columns", array('WPSiteShowIDs', 'add_column'));
  41.                     add_filter("manage_". $post_type . "_custom_column", array('WPSiteShowIDs', 'add_return_value'), 10, 3);
  42.                 }
  43.             }
  44.         }
  45.         static function add_css() {
  46.             ?>
  47.             <style type="text/css">
  48.                 #wpsite-show-ids {
  49.                     width: 50px;
  50.                 }
  51.             </style>
  52.             <?php
  53.         }
  54.         static function add_column($cols) {
  55.             $cols['wpsite-show-ids'] = 'ID';
  56.             return $cols;
  57.         }
  58.         static function add_value($column_name, $id) {
  59.             if ( $column_name == 'wpsite-show-ids' ) {
  60.                 echo $id;
  61.             }
  62.         }
  63.         static function add_return_value($value, $column_name, $id) {
  64.             if ( $column_name == 'wpsite-show-ids' ) {
  65.                 $value = $id;
  66.             }
  67.             return $value;
  68.         }
  69.     }

WordPress 后台文章列表添加自定义列简单方法

已有 339 人购买
查看演示升级 VIP立刻购买

收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!