用于创建表的操作挂接比After_Switch_Theme和Switch_Theme操作挂接更好

时间:2017-02-23 作者:pixelngrain

我只想在自定义主题激活时创建表。我试过了after_switch_theme 动作挂钩,但不管我的自定义主题如何,它都在创建表。这意味着如果我激活Twenty fifteen 或任何其他主题。

add_action(\'after_switch_theme\', [\'\\Recruitment\\recruitment\', \'create_table\']);
我只想在自定义主题是当前主题或激活该主题时创建表。

有没有钩子或其他方法?

1 个回复
最合适的回答,由SO网友:pixelngrain 整理而成

啊,我找到了。

您可以使用after_setup_theme 行动挂钩。所以它会像

add_action(\'after_setup_theme\', [\'\\Recruitment\\recruitment\', \'create_table\']);
更新的代码
$theme = wp_get_theme();

if ( $theme->name == \'My THEME NAME\' ) {

  global $wpdb;
  global $charset_collate;

  $sql = "CREATE TABLE IF NOT EXISTS ... $charset_collate;";

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

  add_option( \'ab_db_version\', self::$db_version );

}

// in another file

add_action(\'after_switch_theme\', [\'\\Recruitment\\recruitment\', \'create_table\']);

相关推荐

将搜索值添加到wp_list_table分页

我有一个使用wp\\u list\\u table的自定义WordPress表,其中有一个搜索字段:搜索效果很好,但我发现当有多页结果时,搜索值不会添加到分页链接中。以下是我的完整代码:if ( ! class_exists( \'WP_List_Table\' ) ) { require_once( ABSPATH . \'wp-admin/includes/class-wp-list-table.php\' ); } class Customers_List