Πως να φτιάξετε ένα WordPress plugin

wordpress plugins

Δεν μπορεί κανείς να διαφωνήσει ότι το wordpress έχει αλλάξει τον κόσμο των cms στο internet αφού αυτή τη στιγμή είναι το πιο διαδεδομένο cms και σε συνδυασμό με το γεγονός ότι είναι open-source ενισχύει ακόμα περισσότερο την παρουσία του τα επόμενα χρόνια! Ας μην ξεχνάμε ακόμα ένα στοιχείο , το ότι το wordpress ξεκίνησε ως μια πλατφόρμα για blog και έχει πλέον επεκτείνει τις δυνατότητές του για την δημιουργία web-app!

wordpress plugin

Τα βασικά για να ξεκινήσουμε την δημιουργία οποιουδήποτε plugin για το wordpress είναι  να έχουμε γνώση της PHP και κατανόηση του  WordPress file structure και τουAdministration panel.

Γιατί όμως κάποιος να αναπτύξει ένα plugin ? Πολύ απλά γιατί είναι σχετικά εύκολο και γιατί εάν ζητήσετε από κάποιον να το κάνει θα σας ζητηθούν πολλά χρήματα και δεν θα μπορείτε εύκολα μετέπειτα εσείς να το παραμετροποίησετε !

ΔΟΜΗ ΤΩΝ ΦΑΚΕΛΩΝ ΓΙΑ WordPress plugin

wordpress-install-dir-plugins

Όπως δείχνει η εικόνα συνήθως αυτή είναι η εικόνα των folder κατά την εγκατάσταση ενός wordpress. Εάν θέλουμε την δημιουργία ενός μικρού Plugin που αποτελείτε από ένα αρχείο τότε μπορούμε εφόσον θέλουμε να το τοποθετήσουμε κατευθείαν στο φάκελο plugins χωρίς να είναι το αρχείο αυτό μέσα σε φάκελο. Για μεγαλύτερα plugins δημιουργούμε ένα  νέο φάκελο μέσα στον φάκελο plugins και τοποθετούμε εκεί τα αρχεία του plugin. Εάν θέλουμε το plugin να το μοιράσουμε για download μπορούμε και καλό θα είναι να δημιουργούμε ένα αρχείο readme.txt όπου θα έχουμε πληροφορίες με το όνομα του plugin και τι αυτό κάνει! Τέλος μπορούμε να προσθέσουμε πληροφορίες με τα όποια updates έχουν γίνει στο plugin.

H ΑΡΧΗ ΤΟΥ PLUGIN

Όταν ξεκινάμε ένα plugin πρέπει να δημιουργήσουμε ένα αρχείο php με οποιοδήποτε όνομα (καλό θα είναι να περιγράφει τη λειτουργία του Plugin ). Στο παραδειγμά μας θα λέγετε excerpt.php  .

Οι πρώτες γραμμές του Plugin πρέπει να είναι σχόλια τα οποία θα μπορεί να διαβάσει το wordpress .  Εάν αυτά δεν υπάρχουν  τότε δεν θα μπορεί να λειτουργήσει το plugin. Παρακάτω παρουσιάζονται την μορφή που θα πρέπει να έχουν τα σχόλια

  1. <?php
  2. /*
  3. Plugin Name: Plugin Name here
  4. Plugin URI: http://www.yourpluginurlhere.com/
  5. Version: Current Version
  6. Author: Name please
  7. Description: What does your plugin do and what features does it offer…
  8. */
  9. ?>

Το Plugin Name  είναι αυτό που θα εμφανίζεται στο backend panel του wordpress και το ίδιο θα συμβεί με το URI το οποίο θα εμφανίζεται στις λεπτομέρειες. Καλό θα είναι να υπάρχει και η version του plugin κάτι που θα το δείχνει πιο επαγγελματικό!

ΤΕΧΝΙΚΕΣ ΔΗΜΙΟΥΡΓΙΑΣ ΤΟΥ PLUGIN ΓΙΑ TO WORDPRESS

Υπάρχουν αρκετοί γνωστοί τρόποι για να δημιουργήσετε το plugin σας. Τις περισσότερες φορές οι “έμπειροι”  developers δημιουργούν μια class για να μην έχουνε προβλήματα με τις fuctions και τα ονόματα των μεταβλητών. Εάν δεν είστε όμως εξοικειωμένοι με το OOP model της php , καλύτερα να γράφετε τον κώδικα σας σε απλές fuctions.

Έτσι για το παράδειγμα μας θα γράψουμε μια απλή συνάρτηση για να αποθηκεύουμε τα δεδομένα μας. Παρακάτω είναι ένα κομμάτι κώδικα του plugin.

  1. ?php
  2. define(“exampleVariable”, “this is a value”);
  3. function jim_content_example_function( $limit ) {
  4.   // some code goes here
  5. }
  6. ?>

Στο παράδειγμά μας χρησιμοποιούμε σαν prefix το jim. Αυτό μπορεί να αντικατασταθεί με οτιδήποτε ( συνήθως με κάτι σχετικό με το plugin σαν όνομα).  Φυσικά το παραπάνω κομμάτι κώδικα είναι κάτι σαν πρότυπο και όχι πραγματικός κώδικας!

WordPress Filters And Actions

Τα filters και Actions αποτελούν αναπόσπαστο κομμάτι στην δημιουργία ενός plugin.  Χρησιμοποιώντας αυτά μπορούμε να ανανεώσουμε το περιεχόμενο ή να προσθέσουμε μια ακόμα επιλογή . Η σωστή κατανόηση τους σε συνδυασμό γνώσης του WordPress Api μπορούν να οδηγήσουν σε εκπληκτικά αποτελέσματα!

Add_filter()

Ένα filter χρησιμοποιείται όταν ένα κομμάτι δεδομένων ή κειμένου περνάει μέσα στο WordPress.  Με τα filter μπορείς σχετικά εύκολα να φιλτράρεις περιεχόμενο μέσα από τις δικές σας fuctions με όποιον τρόπο επιθυμείς.

Για να γίνουμε λίγο πιο κατανοητοί μέσα από την filter μπορείς να αλλάξεις την $the_content ή την wp_title που χρησιμοποιούνται από το wordpress για να της δώσεις όποια μορφή θέλεις π.χ. να κάνεις την title να έχει δεξιά και αριστερά δυο επιθυμητές εικόνες ή δύο span tags για λόγους design από ένα style!!

Συνήθως οι Filter χρησιμοποιούνται για μορφοποιήσουμε κείμενο όπως στο παράδειγμα που δώσαμε παραπάνω. Το παράδειγμα με το title μπορεί να είναι έτσι

  1. add_filter(‘wp_title’, ‘jim_func’);

Εδώ χρησιμοποιούμε ένα φίλτρο για να αλλάξουμε το title (αυτό το παράδειγμα δεν σχετίζεται με το plugin του παραδείγματός μας) .

Το add_filter είναι μια τοπική συνάρτηση του wordpress και χρησιμοποιείται για να προσθέσουμε ένα νέο φίλτρο που βρίσκεται στο περιεχόμενο . Στο παραπάνω παράδειγμα στοχεύουμε την $wp_title που περιέχει τον τίτλο της σελίδας μας . Ύστερα περνάμε αυτή την μεταβλητή σε  μια συνάρτηση με όνομα jim_func() που μπορεί να εξάγει τον τίτλο όπως θέλουμε για οποιανδήποτε σκοπό.

Add_action()

Τα Actions είναι παρόμοια με τα filter αλλά δεν δουλεύουν με μεταβλητές κείμενο κτλ… αλλά με προκαθορισμένα σημεία στα templates και στο admin panel. Σαν παράδειγμα μπορεί κάποιος να προσθέσει ένα action όταν ανανεώνει ή αλλάζει το περιεχόμενο της σελίδας του. Το wordpress προσφέρει μια χρήσημη λίστα action στο api του. Παρακάτω είναι κάποια παραδείγματα :

 

  • publish_post – καλείτε όταν ένα post γίνεται published ή η κατάσταση του αλλάζει σε published.
  • save_post – καλείτε  όταν μια σελίδα/post δημιουργείτε από την αρχή ή γίνεται update
  • wp_head – καλείτε  όταν το template γίνεται loaded και τρέχει την wp_head() fuction
  • loop_end – καλείτε αμέσως μόλις τελειώσει το loop

Ξανά μπορούμε να δούμε πόσο απλή είναι η λογική στον κώδικα. Εάν καταλάβετε την διαφορά μεταξύ actions και filters μπορείτε να δημιουργήστε εκπληκτικά αποτελέσματα! Παρακάτω είναι ακόμα ένα κομμάτι κώδικα που δημιουργεί ένα action με την βοήθεια του save_post  που είπαμε παραπάνω.

  1. add_action(‘save_post’, ‘notify’);
wp-hooks

Η μορφή είναι παρόμοια με την add_filter(). Χρειαζόμαστε 2 μεταβλητές, η πρώτη κρατάει το όνομα από το hook που στοχεύουμε , στην περίπτωση μας το save_post που σημαίνει ότι κάθε φορά που ένα νέο post γίνεται save θα πραγματοποιείτε ή συνάρτηση που έχουμε στην δεύτερη θέση στην προκειμένη περίπτωση η notify.

Δημιουργία του WordPress plugin μας

Τελειώνοντας θα προσθέσουμε την συνάρτησή μας μέσα στο αρχείο του plugin. Το Api του wordpress είναι πολύ συγκεκριμένο και το codex πολύ καλό και εκεί μπορεί κάποιος developer να βρει απαντήσεις σε ποιο εξειδικευμένα θέματα.

Η συνάρτηση πρέπει να μπει ακριβώς μετά τα σχόλια στο αρχείο του plugin. Διαφορετικά αυτή θα μπορούσε να μπει και στο fuctions php. Η συνάρτηση χρησιμοποιείτε για να δημιουργεί δυναμικό περιεχόμενο βασισμένο σε συγκεκριμένο αριθμό χαρακτήρων.

Έτσι για το παράδειγμα μας μπορούμε να περιορίσουμε το limit στους 55 χαρακτήρες με την jim_trim_content() συνάρτηση. Θα μπορούσαμε να χρησιμοποιήσουμε αυτή τη συνάρτηση στο sidebar ή στο content.

  1. <?php
  2. function jim_content( $limit ) {
  3.   $content = explode( ‘ ‘, get_the_content(), $limit );
  4.   if ( count( $content ) >= $limit ) {
  5.     array_pop( $content );
  6.     $content = implode(” “,$content).’…’;
  7.   } else {
  8.     $content = implode(” “,$content);
  9.   }
  10.   $content = preg_replace(‘/\[.+\]/’,”, $content);
  11.   $content = apply_filters(‘the_content’, $content);
  12.   return $content;
  13. }
  14. ?>
Δεν χρειάζεται να καταλάβετε όλες τις συναρτήσεις που χρησιμοποιούνται μέσα στην συνάρτηση για να δημιουργηθεί το αποτέλεσμα που θέλουμε . Το θέμα είναι να “πιάσετε” το νόημα. Τώρα απλά για να χρησημοποιήσουμε την συνάρτηση απλά πρέπει να κάνουμε το εξης:
<?php echo jim_content(55); // display page content limited at 55 chars ?>

ΕΓΚΑΤΑΣΤΑΣΗ PLUGIN

Για να εγκαταστήσουμε το plugin απλά πρέπει να ανεβάσουμε το αρχείο μας στο /wp-content/plugins . Έπειτα πρέπει να το κάνουμε activate.

Το θέμα είναι ότι τίποτα δεν θα συμβεί! Αυτό θα γίνει όταν και μόνο χειροκίνητα εισάγουμε όπως είπαμε παραπάνω την συνάρτηση στο template μας.

Αυτά είναι η βασική ιδέα για την δημιουργία wordpress plugin . Περισσότερες πληροφορίες με βάση αυτά που είπαμε μπορείτε να βρείτε στο WordPress documentation . Στη συνέχεια θα υπάρξουν πιο εξειδικευμένα tutorials για την δημιουργία πιο πολύπλοκων plugins. Στη web-mate ειδικευόμαστε στην δημιουργία plugins για ιστοσελίδες τύπου wordpress!

Ολόκληρος κώδικας :

<?php
/*
Plugin Name: demo
Plugin URI: https://www.web-mate.gr
Description: This is just a simple plugin to update post excerpts.
Author: vlagas
Version: 2.0
Author URI: https://www.web-mate.gr
*/

function jim_content( $limit ) {
$content = explode( ‘ ‘, get_the_content(), $limit );

if ( count( $content ) >= $limit ) {
array_pop( $content );
$content = implode(” “,$content).’…’;
} else {
$content = implode(” “,$content);
}

$content = preg_replace(‘/\[.+\]/’,”, $content);
$content = apply_filters(‘the_content’, $content);

return $content;
}

?>

Δημοσιεύθηκε στις Αύγουστος 31, 2012 in programming

Μοιραστείτε το άρθρο

About the Author

Back to Top