Τυχαίο “Ξέρατε ότι…” widget

Λοιπόν, το widget με το τυχαίο άρθρο μου έδωσε μία ιδέα…

Ας πούμε ότι, αντί για τις πρώτες λέξεις του άρθρου, θέλουμε να εμφανίζεται μία φράση του τύπου “Ξέρατε ότι…”. Ας υποθέσουμε, για παράδειγμα, ότι έχουμε ένα άρθρο για την γκρίζα φάλαινα. Το widget μας θα μπορούσε να δείχνει μία φράση όπως:

Ξέρατε ότι η μέση ενήλικη γκρίζα φάλαινα ζυγίζει 26 τόνους;

…ακολουθούμενη από ένα σύνδεσμο προς το άρθρο.

Για να το κάνουμε αυτό, θα χρειαστεί να συνδέσουμε επιλεκτικά κάποια άρθρα με τέτοιες φράσεις. Θα χρησιμοποιήσουμε ένα metabox για την περίσταση:

<?php
/**
 * Plugin Name: Post Trivia
 * Description: Associates a post with a trivia phrase
 * Version: 0.1.0
 * Author: geomagas
 *
 */
 
 
// meta box
 
add_action('admin_init','post_trivia_admin_init');

function post_trivia_admin_init()
    {
	add_action("add_meta_boxes",'post_trivia_add_meta_boxes');
	add_action('save_post','post_trivia_save_post',10,2);
	}

function post_trivia_add_meta_boxes()
	{
	add_meta_box('post_trivia',"Did You Know That...",'post_trivia_meta_box','post','side','high');
	}
	
function post_trivia_meta_box($post)
	{
	?>
	<textarea name='post_trivia' id='post_trivia'><?php echo get_post_meta($post->ID,'_post_trivia',true); ?></textarea>
	<?php
	}
	
function post_trivia_save_post($post_id,$post)
	{
	if(isset($_POST['post_trivia']))
		if($_POST['post_trivia'])
			update_post_meta($post->ID,'_post_trivia',$_POST['post_trivia']);
		else
			delete_post_meta($post->ID,'_post_trivia');
	}
	

Σημειώστε ότι, αν η φράση είναι κενή, διαγράφουμε το αντίστοιχο πεδίο meta, αντί να του δίνουμε κενή τιμή, ώστε όταν επιλέξουμε τα άρθρα για το widget, να επιλέξουμε μόνο αυτά που έχουν το αντίστοιχο πεδίο:

<?php
// widget

add_action('widgets_init',function(){register_widget('PostTrivia_Widget');});

class PostTrivia_Widget extends WP_Widget
    {
	
	function __construct()
		{
		parent::__construct(
			'post-trivia-widget',
			'Post Trivia Widget',
			array('description',"A widget that displays a random article's trivia")
			);
		}
		
	function widget($args,$instance)
		{
		$posts=get_posts('meta_key=_post_trivia');
		if($n=count($posts))
			{
			$post=$posts[rand(0,$n-1)];
			echo $args['before_widget'];
			echo $args['before_title'].'Did you know that...'.$args['after_title'];
			$xrpt=do_shortcode(get_post_meta($post->ID,'_post_trivia',true));
			$url=get_permalink($post->ID);
			echo "<blockquote><strong><em>...$xrpt</em></strong></blockquote><p style='text-align:right;'><a href='$url'>Read More &raquo;</a></p>";
			echo $args['after_widget'];
			}
		}
		
	}
	

Το widget υλοποιείται πάνω-κάτω με τον ίδιο τρόπο που το κάναμε στο Τυχαίο Άρθρο. Οι μόνες διαφορές είναι ότι (1) φιλτράρουμε την query με την ύπαρξη του πεδίου _post_trivia και (2) παρουσιάζουμε την αντίστοιχη φράση αντί για τις πρώτες λέξεις του άρθρου.

2 Comments

  1. Χρήσιμο post, διαμορφώνοντας εμείς τη φράση που θέλουμε να εμφανίζεται αυξάνουμε το CTR, το οποίο με την σειρά του επηρεάζει θετικά και την κατάταξη της συγκεκριμένης σελίδας στα οργανικά αποτελέσματα της Google. Για να αυξήσουμε την αποτελεσματικότητα καλό είναι στη φράση να έχουμε τις λέξεις-κλειδιά που έχουν ενδιαφέρον, τις οποίες μπορούμε να βρούμε με το
    keyword tool που υπάρχει στα Google ads.

    1. Η αλήθεια είναι ότι δεν είχα σκεφτεί ποτέ τη SEO-διάσταση του θέματος. Τα λεγόμενά σου δίνουν μία εντελώς νέα προοπτική σε ένα θέμα που ξεκίνησε ως “παιχνίδι πάνω στα wordpress widgets”. Σ’ ευχαριστώ.

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

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