WordPress后台如何给文章列表添加自定义列表

发布时间:

我们在使用操作wordpress后台,文章列表默认情况下只有文章标题、作者、发布时间等等,有的时候我们为了维护网站的方便,我们可能需要在后台文章列表里添加一些自定义列表,用于显示某个值。很多朋友不知道如何给文章列表添加自定义列表,下面就来给大家带来WordPress后台给文章列表添加自定义列表的方法。

WordPress后台如何给文章列表添加自定义列表

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

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

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

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

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

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

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

扩展写法

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

/**********文章***********/  
        add_filter('manage_posts_columns', 'add_new_posts_columns');   
        function add_new_posts_columns($book_columns) {   
 
            $new_columns['cb'] = '<input type="checkbox" />';   
            $new_columns['id'] = __('ID');   
            $new_columns['title'] = _x( 'Title', 'column name' );   
            $new_columns['author'] = __('Author');   
            $new_columns['categories'] = __('Categories');   
            $new_columns['tags'] = __('Tags');   
            $new_columns['date'] = _x('Date', 'column name');   
            return $new_columns;   
        }   
        add_action('manage_posts_custom_column', 'manage_posts_columns', 10, 2);   
        function manage_posts_columns($column_name, $id) {   
            global $wpdb;   
            switch ($column_name) {   
            case 'id':   
                echo $id;   
                break;   
            default:   
                break;   
            }   
        }   
        /**************页面************/  
        add_filter('manage_pages_columns', 'add_new_pages_columns');   
        function add_new_pages_columns($book_columns) {   
 
            $new_columns['cb'] = '<input type="checkbox" />';   
            $new_columns['id'] = __('ID');   
            $new_columns['title'] = _x( 'Title', 'column name' );   
            $new_columns['author'] = __('Author');   
            $new_columns['date'] = _x('Date', 'column name');   
            return $new_columns;   
        }   
        add_action('manage_pages_custom_column', 'manage_pages_columns', 10, 2);   
        function manage_pages_columns($column_name, $id) {   
            global $wpdb;   
            switch ($column_name) {   
            case 'id':   
                echo $id;   
                break;   
            default:   
                break;   
            }   
        }

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

// Hooks + Filters
add_action( 'admin_head', array('WPSiteShowIDs', 'add_css'));
// For Post Management
add_filter( 'manage_posts_columns', array('WPSiteShowIDs', 'add_column') );
add_action( 'manage_posts_custom_column', array('WPSiteShowIDs', 'add_value'), 10, 2 );
// For Page Management
add_filter( 'manage_pages_columns', array('WPSiteShowIDs', 'add_column') );
add_action( 'manage_pages_custom_column', array('WPSiteShowIDs', 'add_value'), 10, 2 );
// For Media Management
add_filter( 'manage_media_columns', array('WPSiteShowIDs', 'add_column') );
add_action( 'manage_media_custom_column', array('WPSiteShowIDs', 'add_value'), 10, 2 );
// For Link Management
add_filter( 'manage_link-manager_columns', array('WPSiteShowIDs', 'add_column') );
add_action( 'manage_link_custom_column', array('WPSiteShowIDs', 'add_value'), 10, 2 );
// For Link_Category Management
add_action( 'manage_edit-link_category_columns', array('WPSiteShowIDs', 'add_column') );
add_filter( 'manage_link_category_custom_column', array('WPSiteShowIDs', 'add_return_value'), 10, 3 );
// For Category Management
add_action( 'manage_edit-link-categories_columns', array('WPSiteShowIDs', 'add_column') );
add_filter( 'manage_link_categories_custom_column', array('WPSiteShowIDs', 'add_return_value'), 10, 3 );
// For User Management
add_action( 'manage_users_columns', array('WPSiteShowIDs', 'add_column') );
add_filter( 'manage_users_custom_column', array('WPSiteShowIDs', 'add_return_value'), 10, 3 );
// For Comment Management
add_action( 'manage_edit-comments_columns', array('WPSiteShowIDs', 'add_column') );
add_action( 'manage_comments_custom_column', array('WPSiteShowIDs', 'add_value'), 10, 2 );
add_action('admin_init', array('WPSiteShowIDs', 'custom_objects'));
class WPSiteShowIDs {
static function custom_objects() {
// For Custom Taxonomies
foreach ( get_taxonomies(array('public'   => true), 'names') as $custom_taxonomy ) {
if (isset($custom_taxonomy)) {
add_action("manage_edit-" . $custom_taxonomy . "_columns", array('WPSiteShowIDs', 'add_column'));
add_filter("manage_" . $custom_taxonomy . "_custom_column", array('WPSiteShowIDs', 'add_return_value'), 10, 3);
}
}
// For Custom Post Types
foreach (get_post_types(array('public'   => true ), 'names') as $post_type) {
if (isset($post_type)) {
add_action("manage_edit-". $post_type . "_columns", array('WPSiteShowIDs', 'add_column'));
add_filter("manage_". $post_type . "_custom_column", array('WPSiteShowIDs', 'add_return_value'), 10, 3);
}
}
}
static function add_css() {
?>
<style type="text/css">
#wpsite-show-ids {
width: 50px;
}
</style>
<?php
}
static function add_column($cols) {
$cols['wpsite-show-ids'] = 'ID';
return $cols;
}
static function add_value($column_name, $id) {
if ( $column_name == 'wpsite-show-ids' ) {
echo $id;
}
}
static function add_return_value($value, $column_name, $id) {
if ( $column_name == 'wpsite-show-ids' ) {
$value = $id;
}
return $value;
}
}