时间:2024-05-19
WordPress 后台文章列表自定义栏目是指在 WordPress 后台文章列表页面,给文章列表表哥添加一些栏目来显示数据,比如文章的浏览数,是否设置了 SEO 信息等,所以学会快速开发 WordPress 后台文章列表自定义栏目开发是 WordPress 二次开发的必备的技能。
如果我们使⽤ WordPress 原⽣的代码给后台⽂章列表页⾯添加一列的话,需要使用两个接口:
add_filter('manage_post_posts_columns', function($columns){
$columns['views'] = '浏览';
return $columns;
});
add_action('manage_post_posts_custom_column' , function ($column, $post_id){
if($column == 'views'){
echo (int)get_post_meta($post_id , 'views' , true);
}
}, 10, 2 );
相对前面两个的开发算简单,但是需要知道这两个接口。
如果和上面一样,需压增加一列来显示文章的浏览数,这种只是简单从 post meta 种去取数据,WPJAM Basic 只需要一行就搞定:
wpjam_register_posts_column('views', ['title'=> '浏览']);
如果复杂一点的例子,获取的数据需要自己处理一下怎么处理呢?
我们继续使用一个函数就搞定 WordPress 设置页面开发里面创建的「WPJAM SEO」插件来演示,怎么在文章栏目显示设置的 SEO 标题,关键字和描述。
直接上代码:
add_action('plugins_loaded', function(){ // 所有插件都已经加载
if(!did_action('wpjam_loaded')){ // 确保已加载 WPJAM Basic 插件
return;
}
wpjam_register_posts_column('seo', [
'title' => 'SEO设置',
'column_callback' => function($post_id){
$value = '';
foreach(['title'=>'SEO标题', 'description'=>'SEO描述', 'keywords'=>'SEO关键字'] as $key => $title){
$value .= '<strong>'.$title.'</strong>:';
if($seo_value = get_post_meta(get_the_ID(), 'seo_'.$key, true)){
$value .= "\n".$seo_value."\n\n";
}else{
$value .= "未设置\n";
}
}
return wpautop($value);
}
]);
});
首先还是先确保 WPJAM Basic 已加载,这方面一个函数就搞定 WordPress 设置页面开发中已经做了详细的介绍,这里就不再赘述了。
这个就是标题中说的那个牛逼的函数,是的,我们只用了 wpjam_register_posts_column
这一个函数就在 WordPress 后台搞定自定义文章列表栏目:
title
:这个参数定义自定义文章列表栏目的表头。
column_callback
:定义怎么获取数据,如果不定义这个参数,则直接从 post meta 获取数据。。
所以上面代码就是在文章列表页增加「SEO设置」栏目:
Copyright © 2019-2024 php.pink