Εισαγωγή στο WordPress και στην ανάπτυξη WordPress Plugins & Themes
Εισαγωγή στο WordPress και στην
ανάπτυξη WordPress Plugins & Themes
Νίκος Γεωργάκης
http:ngtech.eu
20 Δεκεμβρίου, Jelly Ioannina
Θα δούμε παρακάτω:
➢
Πώς γίνεται μία τυπική εγκατάσταση σε έναν VPS.
➢
Πολύ σύντομα το περιβάλλον διαχείρισης του WordPress
και το τι αυτό προσφέρει στον χρήστη.
➢
Την δομή των καταλόγων & αρχείων μίας τυπικής
εγκατάστασης.
➢
Την δομή της βάσης δεδομένων του WordPress.
➢
Τις δυνατότητες επέκτασης που μας δίνει μέσω των
Themes & Plugins
➢
Την βασική δομή ενός plugin & ενός Theme
Τι είναι το WordPress & που μπορώ να
μάθω περισσότερα ή να βρω βοήθεια;
➢
Αν αναρωτιέστε τι είναι το WordPress σταματήστε
με αμέσως! Θα χαρώ να σας εξηγήσω προφορικά
περισσότερα.
➢
Για οτιδήποτε γύρω από το WordPress ξεκινάτε εδώ:
http://wordpress.org - Αρχική σελίδα
http://codex.wordpress.org - Documentation
http://wordpress.org/showcase/ - Δείτε δημιουργίες
http://wordpress.org/extend/ - Plugins / Themes etc
➢
Και για τους γκρινιάρηδες :-)
http://wordpress.org/extend/kvetch/
➢
Από εκεί και πέρα υπάρχουν κυριολεκτικά χιλιάδες site γύρω
από το WordPress μια απλή αναζήτηση θα σας πείσει!
Εγκατάσταση WordPress (1/2):
➢
To WordPress φημίζεται για την ιδιαίτερα εύκολη και
γρήγορη εγκατάστασή του.
➢
Χρειαζόμαστε έναν Windows η Linux Server με:
PHP >= 5.2.4
MySQL >= 5.0.0
➢
Συνιστώμενη πλατφόρμα είναι Linux / xxBSD με suPHP
Apache 2.2 / Nginx, αποφύγετε Windows Server.
➢
Μπορούμε να χρησιμοποιήσουμε και άλλους Web Server πχ. Cherokee μα θα πρέπει να φτιάξουμε
δικούς μας rewrite rules, οτιδήποτε εκτός από Apache είναι μόνο για προχωρημένους χρήστες.
➢
Θέλουμε μία βάση δεδομένων & έναν χρήστη MySQL και
ένα τρόπο να κάνουμε upload τα αρχεία στον server.
Εγκατάσταση WordPress (2/2):
➢
Κατεβάζουμε το αρχείο εγκατάστασης από εδώ:
http://wordpress.org/download/
➢
Αποσυμπιέζουμε και ανεβάζουμε τα αρχεία στο Server
με SFTP ή SSH (Καλό θα ήταν να ξεχάσουμε το FTP!)
➢
Επισκεπτόμαστε την σελίδα εγκατάστασης και
ακολουθούμε μερικά απλά βήματα:
http://example.com/blog/wp-admin/install.php
➢
Εναλλακτικά μπορούμε να φτιάξουμε μόνοι μας το
αρχείο wp-config.php .
➢
Είμαστε έτοιμοι!
Θα ακολουθήσει μία σύντομη επίδειξης της εγκατάστασης.
Μετά το τέλος της παρουσίασης μπορώ να δείξω σε οποίον
ενδιαφέρεται περισσότερα σε live EC2 Server
Επίδειξη εγκατάστασης WordPress :
➢
Έχω ετοιμάσει ένα μικρό SWF ScreenCast με τα βήματα
που ακολουθούμε για να κάνουμε την εγκατάσταση:
➢
Ανοίξτε το αρχείο αυτό από εδώ :
http://jelly-ioannina.gr/files/3rd/wordpress_install.html
➢
Κατά διαστήματα υπάρχουν κουμπιά παύσης σε σημεία
που πρέπει να σταματήσουμε έτσι ώστε να αναφερθούμε
προφορικά στο τι πρέπει να προσέξουμε έτσι ώστε να
αποφύγουμε προβλήματα ασφαλείας και πιθανές
μελλοντικές δυσλειτουργίες
➢
Είναι επίσης μία καλή ευκαιρία να κάνετε τις ερωτήσεις
σας!
Περιβάλλον Χρήσης & Διαχείρισης
➢
Κάντε τώρα Login με τα ονόματά χρήστη και τους
κωδικούς στην διεύθυνση του προσωρινού cloud server
που θα τρέχει κατά την διάρκεια του Jelly Ioannina.
Μην τους κάνετε paste στο chat γιατί είναι δημόσιο
/ ανοιχτό σε όλους
➢
Θα κάνω paste στο chat τις διευθύνσεις των σελίδων
ώστε να συντονιζόμαστε αν “χαθείτε” σταματήστε με και
ρωτήστε.
Δομή καταλόγων και αρχείων WordPress:
Αρχικός Κατάλογος:
Κύρια αρχεία / core files (wp-settings.php, wp-config.php, κλπ)
/wp-admin
Ουσιαστικά ένα “ανεξάρτητο” micro-site με δικά του css, js & includes directories
που παρέχει το περιβάλλον διαχείρησης που είδαμε
/wp-includes
classes, libraries, scripts for entire app, JS libraries, images
/wp-content
/plugins
Μπορεί να έιναι φάκελοι για μεγάλα plugins, η σπανιότερα μεμονωμένα αρχεία.
/themes
Φάκελοι για κάθε θέμα εμφάνισης (WordPress Themes) με αρκετό PHP Code...
/uploads
Τυπικά οργανωμένο κατά year/month
… και άλλους φακέλους ανάλογα με την εγκατάσταση
Προσοχή στα permissions ανάλογα με
τον χρήστη του web server (ρωτήστε)
Δομή Βάσης Δεδομένων WordPress (2/2):
wp_comments & wp_commentmeta:
Πίνακες που περιέχουν οτιδήποτε σχετίζεται με τα comments των χρηστών.
wp_links:
Ουσιαστικά “άχρηστος πίνακας” με δεσμούς του admin Interface.... (Υπόλειμα παλαιότερων εκδόσεων)
wp_options
Ο ποιό κρίσιμος και ποιό παρεξηγημένος πίνακας του WordPress - Περιέχει τις ρυθμισεις τόσο του πυρήνα αλλά και όλων των
πρόσθετων. Εδώ αποθηκεύουμε ώς developers πολύ εύκολα οτιδήποτε μπορεί να υποστεί serialization μέσω του Options / Settings &
Transients API οπότε συνηθίζεται να βρίσκουμε τα πάντα … Ακόμη και δεδομένα που θα χρειαζόταν δικό τους πίνακα...
Προσπαθήστε να τον χρησιμοποείτε στα δικά σας plugin σωστά , μπορώ να σας πώ μερικά tips στο τέλος της παρουσίασης.
wp_postmeta
Περιέχει όλα τα extra (custom) meta data για posts/pages. Είναι μία καλή θέση να αποθηεκύουμε μέσω του αντίστοιχου API
δικές μας πρόσθετες πληροφορίες για κάθε page / post.
wp_posts
Περιέχει τις βασικές πληροφορίες για pages / posts και πολλά άλλα είδη περιεχομένου όπως menus / links / shop items etc
(Θα αναφερθούμε αναλυτικά παρακάτω στα custom page types / taxonomies )
wp_terms & wp_term_relationships & wp_term_taxonomy
Εδώ και μερικές εκδόσεις το WordPress έχει ένα πολύ δυνατό και σύστημα για categories, tags, link categories
and custom taxonomies. Μαζί με τα custome page types μπορούμε να κάνουμε πάρα πολλά πράγματα χωρίς να
χρειαστεί να φτιάξουμε νέα tables. (Για τους Drupalades σκεφτείτε CCK – Content Construction Kit)
Ειναι ένας πανίσχυρος συνδυασμός που χρειάζεται δικιά του παρουσίαση!
wp_usermeta & wp_users
Περιέχουν τις επιπρόσθετες meta πληροφορίες και τα βασικά δεδομένα των χρηστών του WordPress. Μπορούμε πολύ εύκολα
μέσω του αντίστοιχου API να προσθέσουμε και εμέίς δικές μας ρυθμίσεις ανά χρήστη καθώς και να καθορίσουμε ρόλους &
αρμοδιότητες σε καθέναν από αυτούς.
Ανατομία ενός WordPress Plugin:
Όλα τα αρχεία PHP που βρίσκονται μέσα στον φάκελο /wp-content/plugins σαρώνονται στην αρχή για
την παρακάτω κεφαλίδα:
( Είναι υποχρεωτική και περιέχει τις πληροφορίες που χρείαζεται το WordPress για να καταχωρήσει ένα πρόσθετο στον πίνακα ελέγχου.)
<?php
/*
Plugin Name: Name Of The Plugin
Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates
Description: A brief description of the Plugin.
Version: The Plugin's Version Number, e.g.: 1.0
Author: Name Of The Plugin Author
Author URI: http://URI_Of_The_Plugin_Author
License: A "Slug" license name e.g. GPL2
*/
?>
Απο εκέι και πέρα ένα τυπικό plugin περιλαμβάνει κώδικα PHP / Javascript / CSS & HTML που
εκτελεί τις λειτουργίες που επιθυμούμε μέσα από έναν συνδυασμό δικών μας συναρτήσεων
με έτοιμες συναρτήσεις του WordPress.
Η σύνδεση του δικού μας κώδικα με το WordPress γίνεται μέσω τριών κυρίων μηχανισμών:
Hooks (για Actions & Filters) / Widgets / Shortcodes
Υπάρχουν και τα Pluggable Functions αλλά είναι για πολύ συγκεκριμένες χρήσεις...
WordPress Hooks API:
Μέσω του Actions & Filter Hooks API του WordPress μπορούμε να
τροποποιήσουμε ριζικά την λειτουργία και συμπεριφορά του WordPres χωρίς
να κάνουμε καμία αλλαγή σε αρχεία εκτός του φακέλου του πρόσθετού μας.
Αυτό είναι δυνατόν γιατί σχεδόν πάντοτε το WordPress πρίν εκτελέσει
κάποια ενέργεια / ανακτήσει ή αποθηκεύσει δεδομένα καλέι μέσω των
μηχανισμών των filter & action hooks τις συναρτήσεις που εμείς ορίζουμε
δίνοντάς μας την δυνατότητα να τροποποιήσουμε ή ακόμη και να
καταργήσουμε εντελώς τα αποτελέσματα που κανονικά αυτές θα είχαν.
Actions: Actions are the hooks that the WordPress core launches at specific points during execution, or when
specific events occur. Your plugin can specify that one or more of its PHP functions are executed at these
points, using the Action API.
Filters: Filters are the hooks that WordPress launches to modify text of various types before adding it to the
database or sending it to the browser screen. Your plugin can specify that one or more of its PHP functions is
executed to modify specific types of text at these times, using the Filter API.
Ανοίξτε το http://codex.wordpress.org/Plugin_API
WordPress Functions:
Εκτός του Actions & Filter Hook API το WordPress παρέχει δεκάδες συναρτήσεις που μπορούμε
να καλέσουμε από τα plugin μας.
Οι συναρτήσεις αυτές χωρίζονται σε μερικές μεγάλες κατηγορίες:
● Post, Custom Post Type, Page, Attachment and Bookmarks Functions
● Category, Tag and Taxonomy Functions
● User and Author Functions
● Feed Functions
● Comment, Ping, and Trackback Functions
● Action, Filter, and Plugin Functions
● Theme-Related Functions
● Formatting Functions
● Multisite functions
● & Πολλές άλλες που δεν ανήκουν στις παραπάνω ομάδες
Ανοίξτε το http://codex.wordpress.org/Function_Reference
Widgets & Short Codes:
Σχεδόν όλα τα WordPress Themes έχουν μία ή και περισσότερες Side Bars,
περιοχές δηλαδή συνήθως στα άκρα των σελίδων που περιέχουν blocks
περιεχομένου που μπορεί ο διαχειριστής να προσθέσει / αφαιρέσει ή να αλλάξει
τις ρυθμίσεις τους μέσα από το περιβάλλον διαχείρισης του WordPress.
Τα κομμάτια αυτά ονομάζονται Widgets και παρέχονται τόσο από τον κύριο
κώδικα του WordPress αλλά και από τα εγκατεστημένα plugins.
Μπορούμε πολύ εύκολα να προσθέσουμε και εμείς δικά μας widget στα plugin
μας μέσω του αντίστοιχου API.
Τα shotcodes είναι το αντίστοιχο του [bbcode] που ίσως να γνωρίζετε από τα
forum. Είναι ένας μηχανισμός φίλτρων που μπορούμε να ενσωματώσουμε δικές
μας συναρτήσεις που θα αντικαθιστούν λέξεις κλειδιά εντός [] με περιεχόμενο
της επιλογής μας.
Δείτε το http://codex.wordpress.org/WordPress_Widgets &
http://codex.wordpress.org/Shortcode_API
Themes
Θέμα της επόμενης Παρουσίασης...
Προς το παρόν πάμε πίσω στο demo site
να πούμε προφορικά τα βασικότερα
πράγματα...
Ευχαριστώ
Για την υπομονή και την προσοχή σας και ελπίζω να
σας κίνησα το ενδιαφέρον να ασχοληθείτε με την
πλατφόρμα του WordPress...
●
Νίκος Γεωργάκης
●
ngdata@gmail.com
●
www.ngtech.eu