Bonjour à tous,
Je suis en train de développer un plugin sous Wordpress pour voir ce qui est possible de faire avec Wordpress. Ce plugin est un plugin de type CRUD (Create, read, Update and Delete).
J'ai réussi à créer ma table sur la base de donnée ett je m'attaque maintenant à la partie lecture. J'ai développé la fonction qui va interroger la base de données. Mais, je n'arrive pas à faire une page qui appelle la fonction.
J'ai pensé à créer à la main une page, lui insérer un BBcode (par exemple [myplug]lecture[/myplug]) et d'ajouter un filtre lorsque wordpress voit ce BBcode, il appelle ma fonction de lecture.
Je voudrai savoir s'il y a un moyen plus propre pour faire ça ?
Voici le code de mon plugin :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75 <?php /* Plugin Name: myplug Plugin URI: http://www.myplug.com/ Description: myplug is a CRUD wordpress plugin. Version: 1.0.0 Author: John DOE Author URI: http://johndo.com/ */ class myplug{ public $DB_VERSION = '1.0.0'; /** * Constructor */ function __construct(){ } /** * Install the plugin * @global wpdb $wpdb */ static function install(){ global $wpdb; $myMessagesTableName = $wpdb->prefix.'myMessages'; if($wpdb->get_var("SHOW TABLES LIKE '$myMessagesTableName'") != $myMessagesTableName){ //création de la table $sql = "CREATE TABLE `$myMessagesTableName` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `name` VARCHAR(50) NOT NULL ) ;"; require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); dbDelta($sql); $option['myplug_version'] = $DB_VERSION; } add_option('myplug_version',$option); } /** * Uninstall the plugin * @global wpdb $wpdb */ static function uninstall(){ global $wpdb; $myMessagesTableName = $wpdb->prefix.'myMessages'; if($wpdb->get_var("SHOW TABLES LIKE '$myMessagesTableName'") == $myMessagesTableName){ //création de la table $sql = "DROP TABLE `$myMessagesTableName`"; $wpdb->query($sql); } delete_option('myplug_version'); /*delete_option($this->adminOptionsName); delete_option($this->userOptionsName);*/ } /** * Return the content of the table * @global wpdb $wpdb * @return array $messages */ function getMessages(){ global $wpdb; $myMessagesTableName = $wpdb->prefix.'myMessages'; $sql = $wpdb->prepare("SELECT * FROM $myMessagesTableName "); $messages = $wpdb->get_results($sql); return $messages; } } register_activation_hook( __FILE__ ,array('myplug', 'install')) ; register_deactivation_hook( __FILE__ ,array('myplug', 'uninstall')) ; ?>
Partager