Caputo's blog

Informatica, tecnologia, programmazione, fai da te, papercraft e papertoy

Installare Google Custom Search Engine su WordPress

ottobre 20th, 2012 by Giovanni Caputo

Oggi voglio segnalarvi un modo per installare/usare Google Custom Search Engine sul proprio sito WordPress.

Per fare questo potrete seguire il link di hongkiat:

http://www.hongkiat.com/blog/wordpress-google-cse/

Category: Fai da te | No Comments »

Aggiungere jquery nella realizzazione di plugin per WOrdpress

aprile 9th, 2011 by Giovanni Caputo

Per chi realizza plugin per wordpress protrebbe essere utile referenziare la libreria jquey. Il modo più semplice per farlo, inserndo tale riga prima della funzione wp_head è:

< ?php wp_enqueue_script("jquery"); ?>

Category: Programmazione | No Comments »

Visualizzare post di wordpress all’esterno del blog

gennaio 31st, 2011 by Giovanni Caputo

Veidamo come visualizzare un post WordPress in una pagina esterna.

 
require('tuo_percorso_wordpress/wp-load.php');
   global $query_string;
   $qstring_array = array();
   parse_str($query_string,  $qstring_array);
   $args = array_merge($args,$qstring_array);
   query_posts($args) ;
 
 if (have_posts()) : while (have_posts()) : the_post();
         echo "Titolo :";
         the_title();
        echo "";
        echo "Autore: ";
        the_author();
       echo "
 
";
      endwhile;
    else:
       echo "Nessun post da visualizzare";
    endif;

Category: Programmazione | No Comments »

Scriptino utile per problema caratteri accentati con WordPress

gennaio 12th, 2011 by Giovanni Caputo

update  `wp_posts` SET `post_content`= REPLACE (post_content, ‘√®’, ‘è’);# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# 165 riga/e modificata.
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).

update  `wp_posts` SET `post_title`= REPLACE (post_title , ‘√®’, ‘è’);# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# 8 riga/e modificata.
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).

update  `wp_posts` SET `post_content`= REPLACE (post_content, ‘√†’, ‘à’);# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).

update  `wp_posts` SET `post_title`= REPLACE (post_title , ‘√†’, ‘à’);# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).

update  `wp_posts` SET `post_content`= REPLACE (post_content, ‘√π’, ‘ù’);# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).

update  `wp_posts` SET `post_title`= REPLACE (post_title , ‘√π’, ‘ù’);# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).

update  `wp_posts` SET `post_content`= REPLACE (post_content, ‘√≤’, ‘ò’);# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).

update  `wp_posts` SET `post_title`= REPLACE (post_title , ‘√≤’, ‘ò’);# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).

update  `wp_posts` SET `post_content`= REPLACE (post_content, ‘‚Äô’, ‘”‘);# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).

update  `wp_posts` SET `post_title`= REPLACE (post_title , ‘‚Äô’, ‘”‘);# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).

update  `wp_posts` SET `post_content`= REPLACE (post_content, ‘√¨’, ‘ì’);# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# 91 riga/e modificata.

update  `wp_posts` SET `post_title`= REPLACE (post_title , ‘√¨’, ‘ì’);# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# MySQL ha restituito un insieme vuoto (i.e. zero righe).

update  `wp_posts` SET `post_content`= REPLACE (post_content, ‘‚Ķ’, ‘…’);# 30 riga/e modificata.
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# 73 riga/e modificata.
# 73 riga/e modificata.
# 91 riga/e modificata.

update  `wp_posts` SET `post_title`= REPLACE (post_title , ‘‚Ķ’, ‘…’);# 1 riga/e modificata.
# MySQL ha restituito un insieme vuoto (i.e. zero righe).
# 6 riga/e modificata.
# 6 riga/e modificata.
# MySQL ha restituito un insieme vuoto (i.e. zero righe).

Category: Programmazione | No Comments »

Trasformare WordPress in qualcosa di più di un blog

novembre 6th, 2010 by Giovanni Caputo

Social Network

Uno stupendo plugin che racchiudde tantissime nuove opzioni e funzionalità da installare sul proprio blog WordPress è BuddyPress . Più volte vi ho parlato di questo plugin per il quale ho creato personalmente una estensione. E’ possibile creare foto album da parte dei membri, chiedere amicizie etc.

E-commerce e Carrello

WP e-Commerce è un plugin gratuito, forse il più famoso che permette di trasformare il vostro wordpress in unsito di e commerce. Fornisce strumenti di front e back office e permette l’integrazione di metodi di pagamento come PayPal, google Checkout, Authorize.net etc..

Micro Blogging

Micro-blogging è un concetto, secondo me, non molto diffuso in Italia, dove è gli utenti scrivono cortissimi messagi , non più di 2 frasi, come in Twitter. Prologue, è un tema sviluppato dagli stessi sviluppatori di WordPress della Automatic e permette di trasformare il proprio blog in una sorta di clone di Twitter.

Review

WordPress di default supporta commenti, ma la sua configurazione attuale consente solo di lasciare un commento generale di testo ad un determinato post. Se si dispone di una vetrina di prodotti o di servizi e volete un motore per migliorare la  revisione e il rating, si dovrebbe provare WPReview. WPReview è un semplice plugin che aggiunge delle stelle di valutazione con tecnologia  AJAX  alle recensioni,  ai propri post e pagine. I vostri visitatori possono lasciare commenti, o lasciare un rating secondo una scala da 1 a 5. Il plugin utilizza un algoritmo Baysesiano per fare le ricerche nei post.

Photoblog

Un photoblog è semplicemente un blog che pone maggiormente l’accento sulle immagini piuttosto che sulle parole. Il modo più semplice per iniziare con photoblogging su WordPress è quello di usare uno dei plugin più scaricato: PhotoQ. Esso supporta il caricamento bulk, i metadati EXIF, watermarking e ridimensionamento automatico delle immagini e miniature.

Controllo qualità- Bug Tracker

Quality Control è un tema WordPress che trasformerà una installazione di base WordPress in un sistema semplice e diretto ticketing. Esso consente agli utenti di creare i ticket, assegnare stati, mile stone, categorie e tag. Altri utenti possono quindi interagire con i ticket, aggiornando il loro stato, le milestone, o qualsiasi altra proprietà.

Fatture

WordPress 3 Invoice è un plugin che consente di creare, stampare e inviare le fatture; offre funzioni potenti e semplici per la gestione dei clienti etc.

CRM

RolePress è un  sistema (CRM) Customer Relationship Management  che permette di organizzare contatti e aziende. È possibile tenere traccia dei numeri di telefono, indirizzi email, siti web, social network e molti altri tipi di informazioni.

Aste online

WP Auctions consente di ospitare aste sulla propria installazione di WordPress. Supportare funzioni di base come il pulsante Compralo Subito o di registrazione di adesione.

Domande e Risposte

Wp-Asnwers è un plugin commerciale vi permetterà di trasformare il vostro sito WordPress in un sito di domande e risposte. Gli utenti possono registrarsi per chiedere e rispondere a domande poste da altri.

Cerco Offro Lavoro

JobPress è un tema WordPress che trasforma il vostro sito web in un perfetto software per la ricerca di occupazioni.

Suggeriteci plugin o temi alternativi per aggiungere funzionalità alla vostra installazione di Wordpre. Grazie.

Category: Siti Web | 1 Comment »

Semplice guida ai post custom di WordPress

ottobre 12th, 2010 by Giovanni Caputo

Per creare un post personalizzato, inserire all’interno del file functions.php del proprio tema il seguente codice.

add_action( 'init', 'create_events' );
function create_events() {
  $labels = array(
    'name' => _x('Events', 'post type general name'),
    'singular_name' => _x('Event', 'post type singular name'),
    'add_new' => _x('Add New', 'Event'),
    'add_new_item' => __('Add New Event'),
    'edit_item' => __('Edit Event'),
    'new_item' => __('New Event'),
    'view_item' => __('View Event'),
    'search_items' => __('Search Events'),
    'not_found' =>  __('No Events found'),
    'not_found_in_trash' => __('No Events found in Trash'),
    'parent_item_colon' => ''
  );

  $supports = array('title', 'editor', 'custom-fields', 'revisions', 'excerpt');

  register_post_type( 'event',array(
      'labels' => $labels,
      'public' => true,
      'supports' => $supports
    )
  );
}

In particolare

  • add_action permette a WordPress di chiamare la funzione create_events() quando WordPress è inizializzato
  • Il vettore $labels indica come mostrare i messagi relativi al tipo di post personalizzato
  • Il vettore $supports indica quali funzionalità supporta il post personalizzato ( per esempio pemette la funzione excerpt)
  • register_post_type registra la nuova tipologia di post su WordPress
  • La funzione register_post_type è personalizzabile con differenti opzioni, è possibile vederle sul sito ufficiale: WordPress Codex.

Generalmente il motivo per cui vogliamo creare dei post type personalizzati è perchè vogliamo dare un look differente a questi nuovi post.

WordPress fornisce dei buoni meccaniscmi per personalizzare il look. Se avete già lavorato precedentemente con Wordpre avrete notato che i singoli post vengono visualizzati con la pagina single.php del proprio tema. WordPress 3.0 permette di aggiungere un file single-[nome_post_personalizzato].php per sovrascrivere come il post personalizzato deve essere mostrato.

Si consigli di iniziare la personalizzazione copiando il codice del file single.php all’interno del nuovo file creato.

Invece se vogliamo avere una pagina con un elenco di post di un certo tipo dobbiamo affidarci ai famosi Page Template. Cioè partire dal file page.php del proprio tema creandone uno simile, page-events.php.

Aggiungere all’inizio del file page-events.php il seguente commento:

<?php
/**
 * Template Name: Events Template
 * @package WordPress
 * @subpackage Twenty_Ten
 * @since Twenty Ten 1.0
 */

get_header(); ?>

Successivamente personalizzare la funzione all’interno dell loop con qualcosa del genere:

<?php query_posts(array('post_type'=>'event')); ?>

I loop si riconoscon da un codice simile al segente:

<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>

Category: Programmazione, Siti Web, Tecnologia | No Comments »

Gestire i Feed RSS di un blog WordPress

agosto 30th, 2010 by Giovanni Caputo

Includere una pagina tra i feed RSS

Il filtro verifica se i posti sono presenti post di un feed, e se ci sono , va a  modificare la query per includere sia post e pagine.

function feedFilter($query) {
	if ($query->is_feed) {
		$query->set('post_type','any');
		}
	return $query;
}
add_filter('pre_get_posts','feedFilter');

Se si vogliono visualizzare solo le pagine, allora si potrebbe cambiare la parola ‘any’ su ‘page’ (o con il nome di un qualsiasi post personalizzatao che si è  creati). E’ possibile selezionare solo i feed delle pagine di  livello più alto con il codice seguente:

function feedFilter($query) {
	if ($query->is_feed) {
		$query->set('post_type','any');
		$query->set('post_parent','0');
		}
	return $query;
}
add_filter('pre_get_posts','feedFilter');

Aggiungere Thumbnails ai feed RSS

function feedFilter($query) {
	if ($query->is_feed) {
		add_filter('the_content', 'feedContentFilter');
		}
	return $query;
}
add_filter('pre_get_posts','feedFilter');

function feedContentFilter($content) {
	$thumbId = get_post_thumbnail_id();

	if($thumbId) {
		$img = wp_get_attachment_image_src($thumbId);
		$image = '<img align="left" src="'. $img[0] .'" alt="" width="'. $img[1] .'" height="'. $img[2] .'" />';
		echo $image;
	}

	return $content;
}

Escludere i post con un certo Tag

Se vogliamo escludere dai feed RSS tutti i posti con il tag numero 29 e possibile utilizzare il seguente codice:

function feedFilter($query) {
	if ($query->is_feed) {
		$tags = array('29');
		$query->set('tag__not_in', $tags);
	}

	return $query;
}
add_filter('pre_get_posts','feedFilter');

Filtrare i feed RSS di una certa categoria

E’ possibile filtrare i feed rss in base al nome della categoria, in questa caso: “blog”

function feedFilter($query) {
	if ($query->is_feed) {
		$query->set('category_name', 'blog');
	}

	return $query;
}
add_filter('pre_get_posts','feedFilter');

inoltre è possibile escludere i post di una certa categoria con

$query->set('cat', '-45');

Aggiungere contenuto alla fine al Feed RSS di ogni post

Nel caso seguente sarà aggiunta qualcosa tipo: “Thanks for reading, check out Your Blog name for more WordPress news!”

function feedFilter($query) {
	if ($query->is_feed) {
		add_filter('the_content','feedContentFilter');
	}
	return $query;
}
add_filter('pre_get_posts','feedFilter');
 
function feedContentFilter($content) {
	$content .= '<p>Thanks for reading, check out <a href="'. get_bloginfo('url') .'">'. get_bloginfo('name') .'</a> for more WordPress news!</p>';
 
	return $content;
}

Category: Programmazione, Tecnologia, tutorial | No Comments »

Menu Personalizzabili di WordPress 3.0 su tutti i temi

agosto 1st, 2010 by Giovanni Caputo

Con la nuova di release di WordPress (3.0) è possibile personalizzare i menu, selezionando a proprio piacimento le voci che si vogliono visualizzare all’interno del menu attraverso un semplice drag&drop.

Per fare questo, però, il tema deve supportare tale funzionalitò, un po come la predisposizione della sidebar per i widget.

E’ possibile  verificare se il tema ha già il supporto per i menu, accedendo nel pannello di controllo di WordPress (ovviamente aggiornato alla versione 3.0),  selezionare “Aspetto” (Appearance) e poi “Menu” per aprire la nuova pagina di gestione.

Se il tema non è predisposto ai menu vedrete il seguente messaggio:

Questo tema non ha il supporto nativo per i menu ma, è possibile utilizzare il widget “menu personalizzati” per aggiungere ogni menu creato alla barra laterale del tema.

E’ possibile a questo punto controllare che sia diponibile una nuova versione del tema aggiornato, oppure utilizzare un widget che funziona da menu.

Infine è possibile modificare, manualmente, con del semplice codice php, il tema affinchè sia predisposto per i menu personalizzati.

Vediamo quali sono i passi:

1: aprire il file function.php presente all’interno del proprio tema, e incollare le seguenti righe,(all’interno del tag php : “<?php” e “?>”.

register_nav_menus(array('primario'=>__('Primary Menu'),));

Con questa riga abbiamo attivato un nuovo menu e registrato la locazione dove apparirà col nome  di “primario”. Probabilmente non saraà più necessario effettuare questo passo con la versione di wordpress 3.0.1

Successuvamente individuate il file, all’interno del proprio tema,  dove è presente il codice per far comparire la barra di navigazione (di solito è il file header, php). Ricordatevi di fare una copia per sicurezza.

Sostutuire quindi il comando che inizia con wp_list_pages, il cmando che elenca le pagine nel menu con il seguente codice

<?php wp_nav_menu( array( 'theme_location' => 'primario' ) ); ?>

Prima di veere il risultato provate a creare un nuovo menu aggiungendo delle pagine al menu personalizzato.

Inoltre potrete notare un disallineamento nel menu, questo perchè il comando wp_list_pages, utilizzava dei parametri che impostavano gli stili css.

E’ possibile allo stesso modo configurare i paramentri per la funzione wp_nav_menu, in modo da personalizzare l’output delle funzione secondo le proprio esigenze modificando eventualmente e opportunamente gli stili.

Per maggiori informazioni sui parametri potete fare riferimento al Codex di WordPress.

Category: Programmazione, Siti Web, Tecnologia | 1 Comment »

Come aggiungere la Thumbnail in WordPress 2.9

marzo 6th, 2010 by Giovanni Caputo

In wordpress 2.9 è possibile aggiungere, direttamente,  le Thumbnail, senza utilizzare i famosi custom field.

Per fare questo bisogna ottimizzare il proprio tema per questa nuova funzione.

Quindi aprire il file function.php del proprio tema e aggiungere alla fine il seguente codice:

if(function_exists('add_theme_support')){
    add_theme_support( 'post-thumbnails' );
}

Salvare quindi il file modificato ed effettuare l’upload del file nel proprio server.
A questo punto, quando andrete a scrivere un nuovo post, o anche, nella pagina di modifica degli articoli, vedrete comparire, nella colonna destra, un link: opzioni Thumbnail.

Cliccando su di essa comparirà la solita finestra per l’upload delle immagini, potrete quindi selezionare una immagine dalla galleria oppure uploadarne una nuova. A questo punto cliccare su ” Utilizza come Thumbnail”.

Infine per far comparire la thumbnail, nelle pagine di frontend, della home o degli archivi, potrete scrivere il seguente codice:

if ( has_post_thumbnail() ) {
// il post corrente ha la  thumbnail
the_post_thumbnail();
}

Buon lavoro!!!!

Category: Novità, Open Source, Programmazione | 5 Comments »

Ridimensionare automaticamente una immagine in WordPress

febbraio 7th, 2010 by Giovanni Caputo

Aggiungere semplicemente il seguente codice nel file functions.php del proprio tema.

function replace_uploaded_image($image_data) {
    // if there is no large image : return
    if (!isset($image_data['sizes']['large'])) return $image_data;

    // paths to the uploaded image and the large image
    $upload_dir = wp_upload_dir();
    $uploaded_image_location = $upload_dir['basedir'] . '/' .$image_data['file'];
    $large_image_location = $upload_dir['path'] . '/'.$image_data['sizes']['large']['file'];

    // delete the uploaded image
    unlink($uploaded_image_location);

    // rename the large image
    rename($large_image_location,$uploaded_image_location);

    // update image metadata and return them
    $image_data['width'] = $image_data['sizes']['large']['width'];
    $image_data['height'] = $image_data['sizes']['large']['height'];
    unset($image_data['sizes']['large']);

    return $image_data;
}
add_filter('wp_generate_attachment_metadata','replace_uploaded_image');

Category: Open Source, Programmazione | No Comments »