2025-04
13

Microsoft 365家庭版崩掉

By xrspook @ 8:24:43 归类于: 烂日记

周三下午发现Excel SQL查询的问题,周四下午算是写完一个调查报告,周四晚上跟往常一样等待的单位的作业结束,结果在某次使用Microsoft 365的时候就出了问题。突然弹出一个窗口,说我的账号上有Office2016家庭版。这意味着什么呢?一开始我并没有马上反应过来,但接下来的事情让我傻眼了。实际上这个并不是一开Office就出的状况,是我正在使用过程中,突然就弹窗。看一下右上角,我的账号是处在一个登录状态。再看我的帐号的那个地方,果然,如我所料,Microsoft 365显示出一个未授权的状态。怎么就未授权呢?无论我怎么点击,出来都是没有结果.于是我就尝试在网页上登录微软账号,第一次进去的时候显示错误代码,403禁止访问,过了一段时间之后我再去,网页上微软账号算是登进去了,但是那里显示了我只有 Office 2016家庭版以及已经过期的Microsoft 365个人版。那个人版肯定过期的啊,因为之后我加入了Microsoft 365家庭版。无论是在微软账号的首页,还是订阅页面,都没有看到Microsoft 365家庭版的订阅信息。我不确定这到底是不是正常,但从直觉看来这很不正常。与此同时,在账号首页,我还能看到我的家庭成员。家庭版的家长是我的同事,不可能把我踢出去,而且家庭的成员也都在,如果要踢就一并踢了,我就看不到那些成员了,所以这到底是什么情况呢?

遇到这种事情,我是很慌的,因为就在较早时候,准确来说大概是半个小时之前。不知道为什么,我就看到了传闻说微软要退出中国。华大基因使用的系统以及office软件也被禁止使用了,所以微软真的对普通个人用户也干这种事情吗?

首先我去微博搜索,发现还没有消息。在这期间我一直在联系家庭版的家长,但是他没有回复,结论只有一个,他去踢球了。一个小时后,当我再去搜索的时候发现微信上有人说Microsoft 365账号的订阅出现了问题。有人显示的订阅被取消,有人显示未授权。通常发生在Microsoft365 家庭版的账号订阅上。这个时候我依然是慌的,难道他们就这么迅速地要针对中国用户?在微信上搜索到这条信息之前,我有的同事已经跟我说,他的office没有问题,原来他用的是Office2021家庭版。

周四下班之前,上面有个任务让我要报某个数据,但现在我的office软件处在一个只能阅读的状态。数据出来了,但我用什么编辑呢?没办法,这下我只能把表格发给自己,然后保存下来,用手机上的Microsoft 365打开编辑保存,然后再发回给自己,电脑上,用只读方式打开核对数据无误后,再把表格发出去。丁大一点的手机,要处理这个,虽然只是填写两个数据,也足以让我觉得很崩溃。

手机上的Microsoft 365显示我是一个免费用户,实际上我应该是一个订阅用户,因为我是Microsoft 365家庭版用户,几乎可以肯定,这种订阅关系不知道为什么被取消了,或者准确来说失去了关联。手机可以打开表格,编辑表格,保存表格,为什么电脑上的版本就只能阅读呢,同样都是免费用户。

那个时候我的脑子里有无数个念头。我的所有电脑全部用的都是我微软账号登录的Microsoft 365,一旦那个玩意失效,我该怎么办?直接换到WPS是不行的,因为单位作业数据的获取是通过数据库查询获取的。开发那个查询的也就是我家庭版的家长,还没有把WPS的查询开发出来,直接把office的查询放在WPS里面,是没有任何效果的。这该怎么办呢?

在办公室里等待下去也没有用,因为这不是一时半刻就能解决的问题,而且问题不在我,所以我也就只能先回宿舍开始动感单车课程。

2022-02
10

让自定义小工具复活

By xrspook @ 7:00:15 归类于: 烂日记

花了一整天都没搞懂的事情,突然晚上用了大概半个小时就开窍了。当然,其实功劳不在那30分钟,而是在前面的一直摸索积累。郁闷得要死要活,当然要总结一下经验,免得老是掉坑里。

上回说到自定义小工具时灵时不灵。通常,当我把网上的自定义小工具脚本(12)贴到functions.php,然后在小工具那里把相应的东西拖放到合适的位置,刷新前端就能看到。当我在functions.php修改代码,修改到一定程度的时候仍然可以看到,但改着改着,前端就没了。当我把改到最后还能显示的版本再贴回去,依然没反应。这到底是什么问题呢?后来我意识到不会是某些默认参数缺失导致。我不知道为什么在小工具的后台预览就没有这种缺失问题,但前端显示就有。非常有可能刚好碰上5.9前端和后台默认参数不完全一致。当我把所有之前空着,理论上应该自动带入默认参数的函数都补充为默认写法之后,奇迹发生了!所以折腾了一大轮非常有可能是5.9删掉了某些前端的默认参数,因为他们从这个版本开始可以使用区块进行全站模板编辑,既然所有东西都源于区块,所有东西都不是从自定义代码开始,在区块那里写入默认参数自然就不会有小工具默认参数缺失的问题。但是,他们万万没想到我这个从WordPress大概2.*版本就开始用的老土鬼依然在用很久很久很久很久很久以前的自定义小工具写法,而当时,当自定义小工具参数缺失时估计有默认参数补全……

要创建一个自定义小工具,可以在模板functions.php文件里通过代码方式实现。下面讲的只是创建小工具本身,有些模板没有自带容纳小工具的箱子,导致创建好的小工具后无法让其在前端显示,这里就不继续探讨了。

写一个自定义小工具主要有3步,其中第1步里有4个步骤需要完成:
1 创建小工具
1.1 设定小工具基本参数
1.2 设定小工具前端输出
1.3 设定小工具后台更新参数
1.4 设定小工具后台输出
2 注册小工具
3 激活小工具

转化为代码大概是这个样子:

class widget-ID extends WP_Widget //创建widget,widget-ID必须唯一,必须小写
{
	public function __construct() //widget基本参数设定
	{
		parent::__construct(
			'widget-ID',
			__('widget name'), //后台widget标题
			array('description' => __('widget description'),) //后台widget描述
		);
	}
	public function widget($args, $instance) //widget前端输出
	{
		echo $args['before_widget'];
		********** //要输出的全部放这里
		echo $args['after_widget'];
	}
	public function update( $new_instance, $old_instance ) //widget后台更新设定
	{ 
		return $new_instance; //public function form里更新了这里就更新,因为form没有内容,照抄默认写法
	}
	public function form( $instance ) //widget后台输出
	{
		echo '<p class="no-options-widget">' . __( 'There are no options for this widget.' ) . '</p>';
		return 'noform'; //因为是自定义小工具,参数都已就位,照抄默认写法
	}
}
function mi_register_widget() //注册自定义widget,mi_register_widget函数名随意
{
	register_widget('widget-ID1'); //多个自定义widget在这里全部列出
	register_widget('widget-ID2');
	register_widget('widget-ID3');
}
add_action('widgets_init', 'mi_register_widget'); //激活已注册的全部widget

之前我遇到的时灵时不灵根本原因在于public function update( $new_instance, $old_instance ){}和public function form( $instance ){}虽然我的确不需要表达什么,所以{}直接留空,于是就撞板了…… 所以这两个组后台参数设定可能对自定义的各位来说的确没啥用,但默认写法还是得继续保留,不能留空。

如果有人像我那样在WordPress 5.9之前自定义小工具好好的,但5.9后就前端不显示了,按照上面步骤对照修改后,还需要在后台小工具页面把之前失效的小工具从箱子里删除,然后重新拖放小工具归位。相信我,这个步骤非常重要!!!虽然看上去还是那个模样,但实际上拖放一圈的确就能解决修改代码后,前端无论如何仍然刷新不出来的问题。

撞板是痛苦的,但摸爬滚打后重新站起来的感觉非常好!

© 2004 - 2026 我的天 | Theme by xrspook | Power by WordPress