User Tools

Site Tools


wordpress:focuswidget

Focus Widget

Per info su questo progetto: Gioxx (dev@gfsolone.com)

Focus Widget permette di pubblicare all'interno di un widget le immagini “featured” degli articoli con tag “focus” fino ad un massimo di 5.

Codice sorgente

Salvare il file e inserirlo nella cartella wp-content/plugins/, è necessario attivare il plugin quindi andare a inserirlo nella propria Sidebar scegliendo anche il nome da mostrare a video.

focuswidget.php
<?php
/*
  Plugin Name: Focus Widget
  Plugin URI: http://public.gfsolone.com
  Description: Seleziona gli ultimi 5 articoli con tag "focus", prende per ciascuno la featured image e la mostra collegandola all'articolo. Per maggiori informazioni: <a href="http://gioxx.org">gioxx.org</a> o <a href="http://public.gfsolone.com">public.gfsolone.com</a>.
  Version: 0.1.1
  Author: Gioxx
  Author URI: http://gioxx.org
  License: CC BY-NC-SA 3.0 IT
 */
 
/*
  Vedi dettaglio licenza di rilascio: http://creativecommons.org/licenses/by-nc-sa/3.0/it/deed.it
  Basato su Codex Wordpress: http://codex.wordpress.org/Widgets_API
  2013 Gioxx (dev@gfsolone.com)
  Attualmente in fase di sviluppo e test su Gioxx's Wall
  IL CONTENUTO DI QUESTO FILE PHP VIENE FORNITO AS-IS E LA MODIFICA DELLA CATEGORIA VA OPERATA MANUALMENTE
 
 */
 
class Focus_Widget extends WP_Widget {
 
	/**
	 * Register widget with WordPress.
	 */
	public function __construct() {
		parent::__construct(
	 		'focus_widget', // Base ID
			'Focus Widget', // Name
			array( 'description' => __( 'Mostra gli ultimi articoli con tag Focus (vedi documentazione)', 'text_domain' ), ) // Args
		);
	}
 
	/**
	 * Front-end display of widget.
	 *
	 * @see WP_Widget::widget()
	 *
	 * @param array $args     Widget arguments.
	 * @param array $instance Saved values from database.
	 */
	public function widget( $args, $instance ) {
		extract( $args );
		$title = apply_filters( 'widget_title', $instance['title'] );
 
		echo $before_widget;
		if ( ! empty( $title ) )
			echo $before_title . $title . $after_title;
		// echo __( 'Stringa debug, dovrebbe comparire nel widget', 'text_domain' );
		?>
			<!-- Ricerca post ed iniezione -->
			<?php $my_query = new WP_Query('tag=focus&showposts=5');
				while ($my_query->have_posts()) : $my_query->the_post(); ?>
				<a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>">
					<!-- Carico la featured image -->
					<?php if (has_post_thumbnail( $post->ID ) ): ?>
					<?php $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'single-post-thumbnail' ); ?>
					<img src="<?php echo $image[0]; ?>" style="width: 295px; padding-bottom: 7px;">
					<?php endif; ?>
				</a>
			<?php endwhile; ?>
		<?php
		echo $after_widget;
	}
 
	/**
	 * Sanitize widget form values as they are saved.
	 *
	 * @see WP_Widget::update()
	 *
	 * @param array $new_instance Values just sent to be saved.
	 * @param array $old_instance Previously saved values from database.
	 *
	 * @return array Updated safe values to be saved.
	 */
	public function update( $new_instance, $old_instance ) {
		$instance = array();
		$instance['title'] = strip_tags( $new_instance['title'] );
 
		return $instance;
	}
 
	/**
	 * Back-end widget form.
	 *
	 * @see WP_Widget::form()
	 *
	 * @param array $instance Previously saved values from database.
	 */
	public function form( $instance ) {
		if ( isset( $instance[ 'title' ] ) ) {
			$title = $instance[ 'title' ];
		}
		else {
			$title = __( 'Focus', 'text_domain' );
		}
		?>
		<p>
		<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?></label> 
		<input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
		</p>
		<?php 
	}
 
} // class Widget terminata
 
// Registrazione del widget
add_action( 'widgets_init', create_function( '', 'register_widget( "focus_widget" );' ) );
?>
wordpress/focuswidget.txt · Last modified: 2013/07/02 17:07 by Giovanni