Torsdag v23 – Repetition skapa databastabell och AJAX route i en plugin

Skapa databastabell vid plugin activation

register_activation_hook() tillåter oss att köra en funktion när en plugin aktiveras. Med hjälp av detta samt $wpdb klassen kan vi skapa databastabeller för våra plugins.

// running a function on plugin activation
function repetition_activate() {
  global $wpdb;

  $table_name = $wpdb->prefix."testing";
  $sql = "CREATE TABLE IF NOT EXISTS $table_name (
    ID bigint(20) unsigned PRIMARY KEY AUTO_INCREMENT,
    example varchar(255) NOT NULL
  );";

  // run our SQL statement (create table)
  $wpdb->query($sql);
}
register_activation_hook(__FILE__, 'repetition_activate');

Koden ovan skapar en ny tabell ”testing” med två kolumner.

Registrera en AJAX route för din plugin

Med add_action() kan du lägga till egna AJAX routes till din plugin. Denna action är lite speciell då den alltid prefixas med ”wp_ajax_” (eller ”wp_ajax_nopriv_ för oinloggade anrop) och sedan lägger du till namnet på din route (även kallad AJAX action)

// registering a wp_ajax route (action)
$ajax_action = 'repetition';
function repetition_ajax_callback() {
  // sending a JSON response
  $response = array(true);
  header('Content-Type: application/json');
  echo json_encode($response);
  exit;
}
// AJAX route: /wp-admin/admin-ajax.php?action=repetition
// for logged in users
add_action('wp_ajax_'.$ajax_action, 'repetition_ajax_callback');
// for NOT logged in users
// add_action('wp_ajax_nopriv_'.$ajax_action, 'repetition_ajax_callback');

Du kan nu skicka HTTP anrop till /wp-admin/admin-ajax.php?action=repetition som kommer att trigga din repetition_ajax_callback funktion.

0 votes