月度归档:11 月 2022

WordPress优化,前端删除classic-themes.min.css的引入

WordPress 6.1是近期发布的版本,如果你持续关注WordPress的更新和对网站的优化,会发现更新到6.1版本后,会多引用一个名为classic-themes.min.css的样式表。

该样式表很小,里面只有一条对按钮的定义,对网站并不会造成明显的影响,但毕竟是多引入了一个通常都无用的文件。本着“应优化尽优化”的原则,我们可以取消对改样式表的引入。 查看详细 »

woocommerce_order_item_product函数过期问题,寻求替代函数的解决方案

woocommerce_order_item_product这个函数,在很多插件里都用到过,但是这个函数自从WooCommerce 3.0版本就开始过期了,如果你用的插件或者主题里还包含了这个函数,会产生一个这样的报错:“woocommerce_add_order_item_meta is deprecated since version 3.0.0! Use woocommerce_new_order_item instead”

尽管报错信息里提示用woocommerce_new_order_item函数代替,但实际上woocommerce_new_order_item函数的参数和woocommerce_order_item_product并不完全相同,不能靠直接替换函数名称来解决问题。

之所以写这一篇博客,是因为我之前的一篇关于产品自定义字段的博客里有代码遇到了这个报错。这里重新贴一下这段代码:

//6.在订单中保存自定义字段
add_action( 'woocommerce_add_order_item_meta', 'brain1981_product_add_on_order_item_meta', 10, 2 );
function brain1981_product_add_on_order_item_meta( $item_id, $values ) {
	if ( !empty( $values['my_custom_addon'] ) ) {
		wc_add_order_item_meta( $item_id, 'my_custom_addon', $values['my_custom_addon'], true );
	}
}
//from: https://blog.brain1981.com

查看详细 »

WordPress用子目录形式在Nginx服务器配置多站点(Multisite)的流程和避坑

写在前面,WordPress多站点并不适合初学者,而对于熟悉WordPress开发的人来说,也应该慎用。WordPress多站点本身是一个比较理想化的解决方案,它在某些维度上简化了拥有多个网站的站长的管理流程,节约了服务器的空间;但它也增加了一层系统结构上的复杂度,使你在操作网站搬家、迁入等大的维护工作的时候容易踩坑。比如对于数据库,如果是单个WordPress网站搬家,我通常只要直接导出数据库就行了,而对于多站点中的子站点就需要做一些额外工作了。本文只讨论WordPress多站点的建立流程,因为我最近正好又为一位客户实施了一次,可以完整滴梳理一下实施过程和容易出错的地方。

WordPress多站点有两种形式,子域名和子目录。这次要配置的是子目录形式,也就是站点一是abc.com/site1 ; 站点二是abc.com/site2 这种形式。

首先,到原站点的设置 – 常规 页面中,把站点地址由原来的 abc.com形式,添加你需要的子目录名,变为 abc.com/site1,并保存设置。此时你访问 abc.com,浏览器会自动跳转到 abc.com/site1 。 查看详细 »