WordPress 插件的卸载逻辑:uninstall.php 该做什么、不该做什么
插件被删除时到底该留下什么、清掉什么,这个问题不少开发者想的不够细。两种“删除”要分清动作触发钩子代码是否还在停用register_deactivation_hook在删除uninstall.php不在停用是可逆的,删数据绝对不能放在停用钩
以下是带有「WordPress」标签的全部文章
插件被删除时到底该留下什么、清掉什么,这个问题不少开发者想的不够细。两种“删除”要分清动作触发钩子代码是否还在停用register_deactivation_hook在删除uninstall.php不在停用是可逆的,删数据绝对不能放在停用钩
白屏排查的第一步永远是打开调试,但打开之后满屏提示,还得知道哪些是真正要处理的。wp-config.php 里的四项开关define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); defi
直接把 写进 header.php 能跑,但会带来一堆麻烦:缓存不更新、插件冲突、加载顺序不可控。统一走 enqueue 才是正路。最小写法add_action('wp_enqueue_scripts', function
两个系统都有钩子,但设计哲学的差异会直接影响插件怎么写、以及迁移时有多痛。命名与定位WP 用 add_action / add_filter 两个函数区分“执行动作”和“过滤数据”。Z-Blog 统称 Filter,靠命名约定(带 Core
做一个插件设置页有两条路,选错了会多写几百行代码。路线一:Settings API(推荐)适合“若干个输入框/开关/下拉”这种常规配置。好处是提交、校验、CSRF、提示全部自动处理。add_action('admin_init', func
短代码看着简单,但写法不对会引发编辑器内容错位,甚至让区块编辑器显示“无效内容”。正确姿势:return,不是 echoadd_shortcode('year', function(){ return date('Y'); });短
做了 i18n 却发现翻译不生效,八成是加载时机写错了。标准的三步// 1. 所有字符串用翻译函数包裹 __('Hello', 'my-plugin'); _e('Settings', 'my-plugin'); // 2. 在 plug
register_post_type() 参数有二十多个,能跑起来只需要几个,但要跑得对,下面这几项不能省。1. labels不写 labels,后台菜单会显示成“文章”加复数形式,用户看不懂。至少要给出 name、singular_nam
很多人把所有代码都塞进 functions.php,换主题时全部作废。这条界限值得一开始就划清楚。判断标准:换主题之后还需要吗?只要答案是需要,就放进插件。功能归属注册导航菜单、侧栏主题自定义文章类型(作品集)插件短代码 [year]插件文
一个能上线的 WP 插件,骨架其实只有四块:头部注释、钩子注册、激活回调、卸载回调。下面按这四块拆。1. 头部注释