不,似乎没有更好的办法。只需确保您的类有一个新的类名,核心小部件不是“可插入的”。
在最近发布的小部件中,我看不到任何允许更改其输出的挂钩,也没有任何适用于更改小部件输出或回调函数的挂钩。
我见过一些技术,包括使用小部件之间运行的挂钩来捕获输出并以某种方式进行修改,但这些技术相当粗糙,您无法访问小部件的设置或小部件区域的参数。
另一种方法是通过修改全局widgets变量来替换小部件的回调函数,但这似乎并不比将小部件复制给我好,因为你必须做一些棘手的事情,比如挖掘全局widgets变量来提取原始参数。再一次让我觉得不舒服,但如果你好奇的话,这是this article.
不过,我不担心WordPress未来版本中的小部件会被破坏。您可能正在复制一个核心小部件,但出于所有目的,这是一个您将要制作的自定义小部件,WordPress非常适合保持与类似内容的向后兼容性。如果核心小部件在将来发生更改,那么您可能会错过这些更改,或者如果需要,必须重新实现这些更改,但您的小部件不太可能会中断。