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/
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/
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"); ?>
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;
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).
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.
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 è 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.
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.
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.
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à.
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.
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.
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.
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.
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.
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$labels
indica come mostrare i messagi relativi al tipo di post personalizzato$supports
indica quali funzionalità supporta il post personalizzato ( per esempio pemette la funzione excerpt)register_post_type
registra la nuova tipologia di post su WordPressregister_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(); ?>
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; }
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.
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!!!!
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');