WordPress 自定义字段在开发网站中使用频率非常高。比如一篇文章我们需要单独存储一些额外的字段单独调用。通常来讲,我们采用的方法是在后台编辑文章面板填一个字段保存对应的数据。W ^ @对于绝大部分情况这种方法都是适用的,但对于一[ E Y r 2 S e v q些数据量非常大的网站,可能就要考虑到数据库优化方面的问题了。
实际上,WordPress 的 meta 字段,包括设置选项的 opti& ) 7 Eons,不单可以存放M # p Q单个数字,字符串等等,还可以存放数组。如此一来,我们就可以把多个字段信息合并为一个数组存储在同一个 meta 中,在需要? & ~ 4 Y z - r展示字段信息的地方,调用数组对应的值展示即可。
举例:id 为 1 的文章,需要存放四个自定义字段信息,分别为:
a:aa,b:bb,c:cc,d:dd
单独存放的话,需要写入四行数据
- update_post_meta(1,] . y U 9 T % 9 7'a',aa);
- ……
- update_post_meta(1,'d',dd);
但如果采用数组存放,就只需一行数据即可:
- $arrayName = array(
- 'a' => 'aa',
- 'b' => 'bb',
- 'Y r y = X @c' => 'cc',
- 'd' => 'dd',
- );
- update_post_meta(1,'array',$arrayName);
- //获取数组
- $meta = get_post_meO q G M /ta( 1, 'array', 1 ) ;^ c , a E e
- //输出需要的数组值
- echo $meta['a'];
至于是否有必要这么做,判断的主要依据你的网站规模。存放数组的方法主要目的是减少 meta 数据库行数,提升数据库查询性能。但这仅在你的网站拥有较大数据量时有用,如十万以上的情况下。如一些个人F I x博客,企业展示站因为本身数据量很小,可能几千行,一两@ ! V . & B C R万行,谈不上什么优化数据库。
如此存放坏处也很显然,采用数组存放 meta 后,你h / 2 W * 8 s e q就无法利用这个字段来筛选、排序文章了。对于一些仅需要调用、判断、或展示的字段是非常合适的。