Ένα WordPress shortcode που αγνοεί περιεχόμενο

Ένα κοινό χαρακτηριστικό όλων των γλωσσών προγραμματισμού είναι τα σχόλια. Πέρα από τον προφανή αρχικό σκοπό τους, προσφέρουν και μία άλλη ευκολία σε αυτόν που γράφει κώδικα: Μπορεί να απενεργοποιήσει προσωρινά ένα κομμάτι κώδικα βάζοντάς το σε σχόλια, χωρίς να χρειάζεται να το διαγράψει τελείως.

Γιατί να μην έχει την ίδια ευκολία κι αυτός που γράφει περιεχόμενο; Γιατί να μην μπορεί να απενεργοποιήσει ένα κομμάτι του περιεχομένου, ώστε αυτό να μη φαίνεται, αλλά χωρίς να χρειάζεται να διαγραφεί;

Το plugin που θα υλοποιήσουμε εδώ, παρέχει αυτό ακριβώς: Ένα shortcode ονόματι ignore, το οποίο εξαλείφει το περιεχόμενο που περικλείει. Και είναι κάπως έτσι:

<?php
/**
 * Plugin Name: Ignore Shortcode
 * Description: Adds a [ignore] shortcode which simply ignores (doesn't render) the containing content.
 * Version: 0.1.0
 * Author: geomagas
 *
 */

add_shortcode('ignore','ignore_shortcode');

function ignore_shortcode($atts,$content='')
    {
	return '';
	}

Οκ, ήταν πολύ εύκολο, το παραδέχομαι… Γι αυτό, ας το “δυσκολέψουμε” λίγο: Ας προσθέσουμε μία παράμετρο που θα κάνει το shortcode να δουλεύει σε τρία επίπεδα: θα αγνοεί είτε το ίδιο το περιεχόμενο (εξ ορισμού) είτε τα υπόλοιπα shortcodes του περιεχόμενου που περικλείει, είτε …τίποτα. Με άλλα λόγια, αν γράψουμε

[ignore level='content']

θα είναι ισοδύναμο με το

[ignore]

και θα απαλείφει όλο το περιεχόμενο, ενώ αν γράψουμε 

[ignore level='shortcodes']

τα shortcodes που περικλείονται θα αντιμετωπίζονται σαν απλό περιεχόμενο. Επιπλέον, αν γράψουμε

[ignore level='none']

όλα θα δουλέψουν σαν να μην υπήρχε το ignore! Πάμε λοιπόν:

<?php
/**
 * Plugin Name: Ignore Shortcode
 * Description: Adds a [ignore] shortcode which simply ignores (doesn't render) the containing content.
 * Version: 0.1.1
 * Author: geomagas
 *
 */

add_shortcode('ignore','ignore_shortcode');

function ignore_shortcode($atts,$content='')
    {
	$default_atts=array('level'=>'content');
	$atts=shortcode_atts($default_atts,$atts);
	switch($atts['level'])
		{
		case 'none': return do_shortcode($content);
		case 'shortcodes': return $content;
		default: return '';
		}
	}
	

Αυτό ήταν. Το πρώτο Τελείως Άχρηστο Πρόσθετο του WordPress έφτασε στο τέλος του. Τα λέμε την επόμενη φορά, με κάτι ακόμα πιο άχρηστο!

One Comment

Αφήστε μια απάντηση

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