How-to: Μiniposts στο WordPress 2.0

Επειδή από καιρό με έχουν ρωτήσει μερικά άτομα (και κυρίως o Κωστής) πως γίνεται, και καθώς τελείωσα τις σχετικές μετατροπές στο δικό μου μπλόγκ, αποφάσισα να γράψω έναν μικρό οδηγό ώστε όποιος ενδιαφέρεται να καθήσει να προσθέσει υποστήριξη και αυτός στο δικό του. Οι περισσότερες πληροφορίες που παραθέτω υπάρχουν κατα κανόνα ήδη διαθέσιμες, στο διαδίκτυο.

Τι είναι τα minipost;

minipost-sampleΕίναι, όπως το όνομα τους προδίδει… μικρά πόστ (σε έκταση). Είναι αρκετά χρήσιμα καθώς δεν πιάνουν πολύ χώρο, διαφοροποιούν τα κανονικά (μεγαλύτερα) πόστ, επιτρέπουν το μονοσήμαντο της κάθε εισόδου στη σελίδα (αποφεύγονται τα πολλαπλά θέματα σε μια είσοδο) κλπ. Στην δική μου υλοποίηση, όπως και του Reality Tape, είναι συνήθες ο τίτλος ενός minipost να οδηγεί σε μια ενδιαφέρουσα σελίδα και το κείμενο να τη σχολιάζει, αν και αυτό δεν είναι απαραίτητο.

Προσθέτωντας miniposts στο WP2.0

Πρώτα απ’όλα μια προειδοποίηση προς αποφυγήν παρεξηγήσεων:
Σας παρέχω το δικαίωμα αντιγραφής, χρήσης και διανομής, του παρακάτω πηγαίου κώδικα, για οποιαδήποτε χρήση. Δεν είμαι υπεύθυνος για οποιαδήποτε ζημιά, απώλεια δεδομένων, κλπ. μπορείτε να πάθετε από τη χρήση των παρακάτω. Αν θελήσετε να χρησιμοποιήσετε τον πηγαίο κώδικα που παραθέτω το κάνετε αποκλειστικά με δική σας ευθύνη.
Επειδή δεν έχω και τόσο πολύ χρόνο (ή όρεξη) ώστε να καθήσω να παίζω με το WordPress έχω ακολουθήσει, ίσως την ευκολότερη λύση για προσθήκη miniposts στη σελίδα μου. Σίγουρα κάποιος με περισσότερο χρόνο και διάθεση για σκάψιμο στα έγκατα του WP ώστε να ξεθάψει όλες τις undocumented functions θα μπορούσε να γράψει κάτι σαφώς πιο ολοκληρωμένο (και χρήσιμο) με τους απαραίτητους πίνακες ελέγχου κλπ.
In a nutshell:

  • Προσθήκη νέας κατηγορίας, miniposts
  • Τροποποίηση αρχείων θέματος (index.php, single.php και style.css) για διαφοροποίηση εμφάνισης βάσει κατηγορίας:
    • Στο index.php, όπου γίνεται η βασική μετατροπή του WordPress loop για διαφορετική εμφάνιση των miniposts
    • Στο style.css, όπου προσθέτουμε νέες κλάσεις για τα miniposts
    • Στο single.php για διαφοροποίηση της εμφάνισης.
  • Χρήση custom fields, για ενσωμάτωση του συνδέσμου για το μίνι-πόστ
  • Προαιρετικά: Προσθήκη plugin για απόκρυψη της κατηγορίας από τον κατάλογο κατηγοριών (του sidebar)

Αρχικά, ας φτιάξουμε μια κατηγορία (WordPress Control Panel » Manage » Categories » Add new) και ας σημειώσουμε τον κωδικό της (ID).
Στη συνέχεια αλλάζουμε το WordPress loop που βρίσκεται στο index.php:

1 
2     
3         
4     
5         
6     
7 

Θα αντικαταστήσουμε ότι υπάρχει μεταξύ των γραμμών με το while (1) και το endwhile (7). Στη θέση της γραμμής 3 βάζουμε τον κώδικα για τα miniposts, ενώ στη θέση της γραμμής 5 αυτόν για τα (υπόλοιπα) ‘κανονικά’ πόστ. Κοιτάξτε το υπάρχον template καθώς και την αντίστοιχη σελίδα με τα Template Tags, και επιλέξτε πως θα φάινονται τα άρθρα και τα miniposts.
Προσοχή! Στη γραμμή 2, στο in_category() η παράμετρος που βάζουμε έιναι ο αριθμός της κατηγορίας (ID) για τα miniposts. Στο παράδειγμα μας χρησιμοποιούμε 3, αλλά εσείς θα έχετε μάλλον κάποιο άλλο νούμερο.
Για να κάνουμε τον τίτλο των miniposts να περιέχουν έναν σύνδεσμο σε κάποιο URL, θα χρησιμοποιήσουμε τα custom fields που μας παρέχει το WordPress. Ας ονομάσουμε το πεδίο ‘link’. Στο index.php, χρησιμοποιούμε το ID,"link",true); ?> ώστε να πάρουμε το URL.
Τότε ορίζουμε τον σύνδεσμο όπως παρακάτω:

">

Παρομοίως, χρησιμοποιώντας το in_category(), και conditionals, μπορούμε να φροντίσουμε το πως θα φαίνονται τα miniposts και στο single.php.
Τώρα ας φτιάξουμε ένα μικρό plugin για να κρύψουμε τη κατηγορία των miniposts. Αν δε θέλετε να τις κρύψετε δε χρειάζεται να φτιάξετε ή να χρησιμοποιήσετε το plugin.


 1 3";
13 }
14
15 add_filter('list_cats_exclusions','hidePointerCat');
16 ?>

Σημ.: Στη γραμμή 12, αντικαθιστούμε το 3 με το ID της κατηγορίας των miniposts. Το αρχείο με τα παραπάνω ας το ονομάσουμε cx-hideposts.php και το τοποθετούμε στο wp-content/plugins/. Μετέπειτα πρέπει να ενεργοποιήσουμε το plugin από τον πίνακα ελέγχου.
Προφανώς χρειάζεται κάποια μικρή εξοικείωση με προγραμματισμό σε php, αλλα κυρίως άνεση στη χρήση των Template Tags του WordPress. Καθώς δεν γίνεται αλλαγή στον βασικό κώδικα του WordPress, παρα μόνον στο theme, και εφ’όσον δεν θα αλλάξουν τα Template Tags ή το filter hook για το plugin, αυτή η μέθοδος ίσως παραμείνει έγκυρη για αρκετό καιρό.

Χρήσιμοποιώντας τα miniposts

Για χρήση των miniposts, επιλέγουμε τις κατηγορίες που επιθυμούμε σύν τη κατηγορία των miniposts. (η οποία πλέον με τη χρήση του plugin δε φαίνεται στο κατάλογο με τις κατηγορίες αλλά φαίνεται σε διάφορα άλλα σημεία, π.χ. στο single.php). Κατα τη συγγραφή, προσθέτουμε το custom field, με key ‘link’ και value το URL που θέλουμε.
Καλή τύχη!