Creare un tema wordpress è reso sempre più facile dalle molte guide che si trovano su internet, voglio condividere alcuni dei così detti code snippet che ho trovato e che consentono di aumentare il numero di features del proprio tema.
Open Graph è un protocollo creato da facebook che rende il contenuto della pagina più facilmente riconoscibile dal social network.
Bisogna inserire il seguente codice all'interno del file functions.php del proprio tema.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function wptuts_opengraph_for_posts() {
if ( is_singular() ) {
global $post;
setup_postdata( $post );
$output = '<meta property="og:type" content="article" />' . "n";
$output .= '<meta property="og:title" content="' . esc_attr( get_the_title() ) . '" />' . "n";
$output .= '<meta property="og:url" content="' . get_permalink() . '" />' . "n";
$output .= '<meta property="og:description" content="' . esc_attr( get_the_excerpt() ) . '" />' . "n";
if ( has_post_thumbnail() ) {
$imgsrc = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'medium' );
$output .= '<meta property="og:image" content="' . $imgsrc[0] . '" />' . "n";
}
echo $output;
}
}
add_action( 'wp_head', 'wptuts_opengraph_for_posts' );
Ora all'interno dell'header dell'header.php del proprio tema si modifica quella che dovrebbe essere la prima riga di codice, il tag HTML con
1
<html <?php language_attributes(); ?> prefix="og: http://ogp.me/ns#">
1
<!DOCTYPE html prefix="og: http://ogp.me/ns#">
Nel caso dovessi sostituire alcune parole all'interno di tutti i tuoi post basta copiare il seguente codice all'interno del file functions.php.
1
2
3
4
5
6
7
8
9
10
11
function replace_text_wps($text){
$replace = array(
// 'WORD TO REPLACE' => 'REPLACE WORD WITH THIS'
'wordpress' => '<a href="#">wordpress</a>',
'excerpt' => '<a href="#">excerpt</a>',
'function' => '<a href="#">function</a>'
);
$text = str_replace(array_keys($replace), $replace, $text);
return $text;
add_filter('the_content', 'replace_text_wps');
add_filter('the_excerpt', 'replace_text_wps');
1
2
3
4
5
6
7
8
9
10
11
function wps_admin_bar() {
global $wp_admin_bar;
$wp_admin_bar->remove_menu('wp-logo');
$wp_admin_bar->remove_menu('about');
$wp_admin_bar->remove_menu('wporg');
$wp_admin_bar->remove_menu('documentation');
$wp_admin_bar->remove_menu('support-forums');
$wp_admin_bar->remove_menu('feedback');
$wp_admin_bar->remove_menu('view-site');
}
add_action( 'wp_before_admin_bar_render', 'wps_admin_bar' );
Cambiare la scritta del footer nella parte amministrativa è a volte utile in quanto è brutto vendere un prodotto con la scritta “Grazie per aver creato questo sito usando WordPress”, è anche facile da fare, come al solito si inserisce del codice all'interno del file functions.php;
1
2
3
4
function remove_footer_admin () {
echo "Testo da aggiungere";
}
add_filter('admin_footer_text', 'remove_footer_admin');
Se vuoi cambiare il mittente delle mail che Wordpress invia a te o agli utenti registrati devi (come sempre) inserire le seguenti righe di codice all'interno del fiile functions.php file.
1
2
3
4
5
6
7
8
9
add_filter('wp_mail_from', 'new_mail_from');
add_filter('wp_mail_from_name', 'new_mail_from_name');
function new_mail_from($old) {
return 'admin@yourdomain.com';
}
function new_mail_from_name($old) {
return 'Your Blog Name';
}
Pinterest, uno dei nuovi social network che sta riscuotendo un grandissimo successo
Pinterest è un sito dove le persone condividono le immagini appartenenti a siti internet. Così come per Facebook o Twitter, puoi aggiungere un bottone di Pinterest all'interno del tuo sito per rendere più facile la condivisione dei tuoi articoli. Basta copiare il seguente codice all'interno del proprio sito (non all'interno del file functions.php ma all'interno di header, index, footer, single o page).
1
<a href="http://pinterest.com/pin/create/button/?url=<?php the_permalink(); ?>&media=<?php $thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'thumbnail' ); echo $thumb['0']; ?>&description=<?php the_title(); ?>" class="pin-it-button" count-layout="horizontal">Pin It</a>
Una volta fatto basta caricare la libreria javascript di pinterest inserendo nel footer il seguente codice:
1
<script type="text/javascript" src="http://assets.pinterest.com/js/pinit.js"></script>
Google+ è un social network che sta vedendo un discreto successo, anche se come numero di utenti è inferiore a Facebook ha una vocazione “leggermente” più professionale. Per aggiungere un pulsante di google+ nei post di wordpress incolla il codice seguente all'interno del file functions.php:
1
2
3
4
5
6
7
8
9
10
add_filter('the_content', 'wpr_google_plusone');
function wpr_google_plusone($content) {
$content = $content.'
<div class="plusone"><g:plusone size="tall" href="'.get_permalink().'"></g:plusone></div>';
return $content;
}
add_action ('wp_enqueue_scripts','wpr_google_plusone_script');
function wpr_google_plusone_script() {
wp_enqueue_script('google-plusone', 'https://apis.google.com/js/plusone.js', array(), null);
}
1
2
3
4
5
6
7
8
<?php
include_once(ABSPATH.WPINC.'/rss.php');
$googleplus = fetch_feed("http://plusfeed.appspot.com/103329092193061943712"); // Sostituisci il numero 103329092193061943712 con il tuo id di Google+
echo '<a href="';
echo $googleplus->items[0]['link']; echo '">';
echo $googleplus->items[0]['summary'];
echo '';
?>
Facebook and Twitter sono i due social network più utilizzati e non ricordo di siti che non consentano di condividere i propri contenuti su di essi. Come al solito copia il seguente codice all'interno del file functions.php. Mostrerà i bottoni di condivisione di Facebook e Twitter alla fine di ogni articolo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function share_this($content){
if(!is_feed() && !is_home()) {
$content .= '
<div class="share-this">
<a href="http://twitter.com/share"
class="twitter-share-button"
data-count="horizontal">Tweet</a>
<script type="text/javascript"
src="http://platform.twitter.com/widgets.js"></script></p>
<div class="facebook-share-button">
<iframe
src="http://www.facebook.com/plugins/like.php?href='.
urlencode(get_permalink($post->ID))
.'&amp;layout=button_count&amp;show_faces=false&amp;width=200&amp;action=like&amp;colorscheme=light&amp;height=21"
scrolling="no" frameborder="0" style="border:none;
overflow:hidden; width:200px; height:21px;"
allowTransparency="true"></iframe>
</div>
</div>';
}
return $content;
}
add_action('the_content', 'share_this');
Inserisci all'interno del file functions.php:
1
2
3
4
5
6
function readTwitterShares($url) {
$s = file_get_contents("http://urls.api.twitter.com/1/urls/count.json".
"?callback=?&url=".urlencode($url));
preg_match("#("count"):([0-9]*)#",$s,$ar);
return isset($ar[2]) ? $ar[2] : 0;
}
Poi all'interno del post inserisci il codice php
1
echo readTwitterShares(get_permalink());
Se hai articoli molto vecchi sul tuo sito è possibile che parte del codice che hai inserito all'interno sia deprecato, o che in generale la notizia che riporti sia imprecisa, in questo caso conviene disabilitare i post vecchi, per farlo basta inserire come al solito il seguente codice all'interno del file functions.php . Il codice disabiliterà i commenti per gli articoli più vecchi di 30 giorni, volendo è possibile aumentare o diminuire il numero al terzo rigo.
1
2
3
4
5
6
7
8
9
function close_comments( $posts ) {
if ( !is_single() ) { return $posts; }
if ( time() - strtotime( $posts[0]->post_date_gmt ) > ( 30 * 24 * 60 * 60 ) ) {
$posts[0]->comment_status = 'closed';
$posts[0]->ping_status = 'closed';
}
return $posts;
}
add_filter( 'the_posts', 'close_comments' );
Hai altre guide o code snippet che ritieni pertinenti a quanto scritto su questo articolo? Commenta qui sotto o mandami una mail.