WordPress的api给了我们很多自定义的功能,以完成我们特殊化的要求,我记得有一款叫wp-postviews的统计插件,在后台安装启用以后,能够在文章的列表也看到文章访问的次数,这个功能非常的实用,今天我们就来讲讲,怎样在WordPress的文章列表添加自定义字段。

我查看了wp-postviews插件的代码,发现是这两个函数起的作用:


### Function Show Post Views Column in WP-Admin
add_action('manage_posts_custom_column', 'add_postviews_column_content');
add_filter('manage_posts_columns', 'add_postviews_column');
add_action('manage_pages_custom_column', 'add_postviews_column_content');
add_filter('manage_pages_columns', 'add_postviews_column');
function add_postviews_column($defaults) {
    $defaults['views'] = __( 'Views', 'wp-postviews' );
    return $defaults;
}


### Functions Fill In The Views Count
function add_postviews_column_content($column_name) {
    if($column_name == 'views') {
        echo get_post_meta($post->ID, 'views', true);
    }
}

上面的代码分别在文章页面和独立页面添加一个filter滤镜和action动作,显示文章或者是独立页面的浏览次数。

附录:通过浏览次数排序方法


### Function Sort Columns
add_filter('manage_edit-post_sortable_columns', 'sort_postviews_column');
add_filter('manage_edit-page_sortable_columns', 'sort_postviews_column');
function sort_postviews_column($defaults)
{
    $defaults['views'] = 'views';
    return $defaults;
}
add_action('pre_get_posts', 'sort_postviews');
function sort_postviews($query) {
    if(!is_admin())
        return;
    $orderby = $query->get('orderby');
    if('views' == $orderby) {
        $query->set('meta_key', 'views');
        $query->set('orderby', 'meta_value_num');
    }
}

将上面的代码加入到你的主题的functions.php中即可,当然你也可以制作成一个插件,然后安装到你的WordPress中,如果您想更深扩展学习不同文章类型的添加可以看下页。