Κάνουμε ένα μικροσκοπικό patch στο tag cloud του wordpress

Υπάρχει ένα ρητό για μας τους IT που ταιριάζει απόλυτα σ’αυτή την ιστορία, και πάει κάπως έτσι:

Never spend 5 minutes doing something by hand when you can spend 5 hours failing to automate it

Πήγα χτες στο μπλογκ μου για να θυμηθώ τι ακριβώς είχα γράψει στην αξιολόγησή μου για το “Θεμέλιο” του Ισαάκ Ασίμωφ, με αφορμή τις παρατηρήσεις μου από το πρώτο επεισόδιο της τηλεοπτικής μεταφοράς του βιβλίου.

Πώς θα το βρώ λοιπόν; Προφανώς αγνοούμε το βολικό search box, και πάμε να πατήσουμε την ετικέτα Isaac Asimov στο ετικετοσύννεφο. Έλα όμως που η ετικέτα δεν ήταν εκεί, όπως και πολλές άλλες! Τι να συμβαίνει;

Προκύπτει λοιπόν ότι το tag cloud widget έχει έναν μέγιστο αριθμό από tags που μπορεί να δείξει, η default ρύθμιση είναι 45, και στις επιλογές του widget δεν υπάρχει πρόβλεψη να το αλλάξεις.

Έψαξα για κάποιο plugin που μπορεί να έκανε αυτή την δουλειά, αλλά δεν βρήκα κάτι που να μην αλλάζει και την εμφάνιση του widget.

“Θα φτιάξω μόνος μου ένα mini plugin” σκέφτηκα. Μετά από λίγες ώρες αποτυχημένων προσπαθειών για να βρω πού θα μπορούσα να βάλω το κατάλληλο hook για να αλλάξω τη ρύθμιση που ήθελα, και πώς διάολο θα έπρεπε ακριβώς να γραφτεί αυτό το hook, αποφάσισα ότι δεν θέλω να κάτσω να εμβαθύνω στην php και στις δομές του wordpress για να αλλάξω ένα setting.

Ήρθε η ώρα του brute force λοιπόν, και του πιστού μας shell! Η ρύθμιση είναι στον πίνακα με τα ορίσματα, με tag ‘number’, τιμή 45, στο αρχείο wp-includes/category-template.php, στις συναρτήσεις wp_generate_tag_cloud() και wp_tag_cloud(). Η αλλαγή αρκεί να γίνει σε μια από τις δυο, αλλά δεν έχει σημασία. Δίνουμε ένα

sed -i "s/'number'.*45/'number' => 0/g" /var/www/mantzouneas.gr/wp-includes/category-template.php

για να κάνουμε την τιμή 0, που σημαίνει κανένα όριο στον αριθμό των ετικετών στο σύννεφο, και τέλος! Η αλλαγή μας βέβαια θα χαθεί με το επόμενο update του wordpress, αλλά μικρό το κακό. Απλά θα τρέξουμε πάλι το oneliner μας!

Γράψτε ένα σχόλιο

Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *

Αυτός ο ιστότοπος χρησιμοποιεί το Akismet για να μειώσει τα ανεπιθύμητα σχόλια. Μάθετε πώς υφίστανται επεξεργασία τα δεδομένα των σχολίων σας.