让代码更简单

WordPress主题启用时的动作钩子after_switch_theme

重要:本文最后更新于2020-01-22 09:41:33,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗

wordpress主题在启用时有个叫做after_switch_theme的动作钩子,挂载函数到该钩子上可以方便我们实现一些主题的扩展功能,如创建数据表等操作。wordpress核心中埋下了很多动作钩子过滤器,个人觉得这东西就像是C#中的委托事件一样,用户注册事件并委托指定函数执行内容。如果不能理解WP的钩子可以参考下,触类旁通。

复制
do_action( 'after_switch_theme', string $old_nameWP_Theme $old_theme )

如果旧主题仍然存在,则在主题切换后的第一个WP加载上触发。

描述

此操作多次触发,如果旧主题存在或不存在,则参数根据上下文的不同而不同。如果旧主题缺失,参数将是旧主题的片段。

参数

  • $old_name
    (字符串) 旧主题名称
  • $old_theme
    (WP_Theme) 旧主题的WP_Theme实例。

简单使用

如下代码将在启用主题时,创建一张数据表:

复制
//创建test数据表
add_action( 'after_switch_theme', 'create_level_table' );
function create_level_table(){
global $wpdb;
$table_name =$wpdb->prefix ."test"; 
if($wpdb->get_var("show tables like $table_name") != $table_name) { 
$sql ="CREATE TABLE `".$table_name."` ( 
`userid` INT NOT NULL , 
`body` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL
);";

require_once(ABSPATH . "wp-admin/includes/upgrade.php");
dbDelta($sql);
}
}

与之对应的,除了启用激活主题钩子外,还有取消激活时的动作钩子switch_theme,除了使用after_switch_theme钩子之外,还可以使用load-themes.php钩子,它将在用户访问主题设置时启动。

感觉很棒!可以赞赏支持我哟~

2 打赏

评论 (0)

登录后评论
QQ咨询 邮件咨询 狗哥推荐