一个函数就搞定 WordPress 后台文章列表栏目开发

2023-04-13 11:49:12 浏览数 (1)

我在 WPJAM Basic 插件的介绍页面就说过,WPJAM Basic 是我们 WordPres 果酱团队进行二次开发的基础,甚至花生小店这么复杂的电商小程序 SaaS 平台就是在 WPJAM Basic 的基础上开发出来的。

使用 WPJAM Basic 进行 WordPRess 二次开发可以非常快,我们接的很多项目,在客户需求清晰的情况下,基本上一个晚上就可以搞定后台界面的开发,很多客户对此都会感到非常惊讶,对我们评价非常高。

有些小伙伴对此深表怀疑,嘿嘿,没关系,下面我们通过一个专题,给大家讲解如何使用 WPJAM Basic 进行快速二次开发,让你也能一个晚上搞定后台界面的开发。

第三讲:一个函数就搞定 WordPress 后台文章列表栏目开发

WordPress 后台文章列表栏目是指在 WordPress 后台文章列表页面,给文章列表表格添加一些栏目来显示数据,比如文章的浏览数,是否设置了 SEO 信息等,所以学会快速开发 WordPress 后台文章列表栏目开发是 WordPress 二次开发的必备的技能。

WordPress 后台文章列表栏目开发有点烦

如果我们使⽤ WordPress 原⽣的代码给后台⽂章列表页⾯添加一列的话,需要使用两个接口:

使用 manage_{$post_type}_posts_columns 接口添加栏目表头:

代码语言:javascript复制
add_filter('manage_post_posts_columns', function($columns){
	$columns['views'] = '浏览';
	return $columns;
});

通过 manage_{$post_type}_posts_custom_column 接口显示栏目数据:

代码语言:javascript复制
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 );

相对前面两个的开发算简单,但是需要知道这两个动态的接口。

使用 WPJAM BASIC 创建文章列表栏目

如果和上面一样,比如需要增加一列来显示文章的浏览数,这种只是简单从 post meta 种去取数据,WPJAM Basic 只需要一行就搞定:

代码语言:javascript复制
wpjam_register_posts_column('views', ['title'=> '浏览']);

如果复杂一点的例子,获取的数据需要自己处理一下怎么处理呢?

我们继续使用一个函数就搞定 WordPress 设置页面开发里面创建的「WPJAM SEO」插件来演示,怎么在文章列表栏目显示设置的 SEO 标题,关键字和描述。

照样直接上代码:

代码语言:javascript复制
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($post_id, 'seo_'.$key, true)){
					$value .= "n".$seo_value."nn";
				}else{
					$value .= "未设置n";
				}
			}

			return wpautop($value);
		}
	]);
});

首先还是先确保 WPJAM Basic 已加载,这方面一个函数就搞定 WordPress 设置页面开发中已经做了详细的介绍,这里就不再赘述了。

wpjam_register_posts_column

这个就是标题中说的那个牛逼的函数,是的,我们只用了 wpjam_register_posts_column 这一个函数就在 WordPress 后台搞定文章列表栏目开发:

  • title:这个参数定义文章列表栏目的表头。
  • column_callback:定义怎么获取数据,如果不定义这个参数,则直接从 post meta 获取数据。。

所以上面代码就是在文章列表页增加「SEO设置」栏目,如果设置文章的 SEO 标题,描述和关键字,就显示出来,如果没有设置,则显示未设置。

搞定,就是这么简单。

0 人点赞