Először is hozzunk létre egy mappát a wp-content/plugins/ mappában, bármilyen nevet adhatunk neki, a lényeg, hogy könnyen felismerjük, hogy melyik mappa melyik pluginhez tartozik. Én most teszt-nek neveztem el a bővítményem mappáját. Ez a mappánk 2 file-t fog tartalmazni:
- teszt.php
- admin-panel.php
A teszt.php lesz a bővítményünk fő vezérlője, ebben határozzuk meg, hogy mit is csinál pontosan a bővítményünk.
teszt.php
<?php /** * Plugin Name: Teszt WordPress bővítmény * Plugin URI: http://php-programozas.info/ * Description: Ez egy teszt WordPress plugin * Author: php-programozas.info csapat * Version: 1.0 * Author URI: http://php-programozas.info/ */ define( 'TESZT_PLUGIN_ID', 'teszt-wordpress-plugin' ); // létrehozunk 1 menüpontot a Beállítások alatt function teszt_plugin_create_menu() { add_options_page("Teszt WordPress bővítmény", "Teszt WordPress bővítmény", 1, TESZT_PLUGIN_ID, "teszt_admin"); } // admin_menu hook-ra kapcsolódunk add_action('admin_menu', 'teszt_plugin_create_menu'); function teszt_admin() { // lekérjük az 5 legfrissebb bejegyzést $posts = get_posts(); // pluginünk felületének betöltése require( 'admin-panel.php' ); }
Látható, hogy a file elején található pár sor komment, ezek kötelező kommentek, a WordPress ezek alapján hozza létre a megfelelő felületet a Bővítmények menüpont alatt.

admin-panel.php
<div> <h2>Teszt WordPress plugin</h2> <table cellspacing="0"> <thead> <tr> <th>Cím</th> <th>Létrehozva</th> <th>Státusz</th> <th>Szerkesztés</th> <th>Megtekintés</th> </tr> </thead> <tbody> <?php foreach ( $posts as $post ) { ?> <tr> <td><?php echo $post->post_title; ?></td> <td><?php echo $post->post_date; ?></td> <td> <?php switch ( $post->post_status ) { case 'publish': echo 'Közzétéve';break; case 'draft': echo 'Vázlat';break; case 'pending': echo 'Elfogadásra vár';break; default: echo 'Ismeretlen'; } ?> </td> <td> <a href="./post.php?post=<?php echo $post->ID; ?>&action=edit">Szerkeszt</a> </td> <td> <a href="<?php echo get_permalink( $post->ID ); ?>">Megtekint</a> </td> </tr> <?php } ?> </tbody> </table> </div>
Ez a file felelős a bővítményünk megjelenésért, az alábbi kimenetet generálja nálam.

Próbáltam úgy létrehozni a bővítményt, hogy a lehető legkönnyebben szerkeszthető legyen, ezért van külön file-ban a megjelenítésért felelős rész. Elég sok WordPress bővítményben találkoztam azzal, hogy mindent egy file-ba ír a készítő és ezzel kaotikus PHP kódot hoz létre, próbáljuk ezt kerülni a saját munkánk megkönnyítése érdekében.