Come installare WordPress su Raspberry Pi

Se volete installare WordPress sul vostro nuovo Raspberry Pi, dovrete installare diverse componenti necessarie al suo funzionamento. Procediamo con la versione più facile con Apache, MySQL (qui la guida per installarlo) e PypMyAdmin:

apt-get install apache2 -y
apt-get install php5 libapache2-mod-php5 -y
apt-get install mysql-server php5-mysql -y
apt-get install phpmyadmin -y
cd /var/www/html/
sudo wget http://wordpress.org/latest.tar.gz
sudo tar xzf latest.tar.gz
sudo mv wordpress/* .
sudo rm -rf wordpress latest.tar.gz
rm index.html
chown -R www-data: .
nano /etc/apache2/apache2.conf

Ora aggiungete al fondo:

Include /etc/phpmyadmin/apache.conf
service apache2 restart
nano /etc/phpmyadmin/config.inc.php

Trovate questa riga e togliete il commento:

$cfg['Servers'][$i]['AllowNoPassword'] = TRUE;

Ora collegatevi all’indirizzo IP del vostro Pi e voilà!

Come rimuovere la stringa “?m=1” dagli url

Indipendentemente da quale sia il vostro web server, può capitare che Google vi mandi questa bellissima email:

Nuovo problema di Copertura rilevato per il sito

Cliccate e approfondite… e scoprite che in realtà non è un vostro problema, ma è semplicemente dovuto da qualche sorta di bot o (nel caso usavate Blogger) di qualche sorta di linking che avete avuto in passato.

Se approfondendo scoprite che in realtà è semplicemente questa stringa (parametro in realtà) a darvi fastidio:

?m=1

Errore di reindirizzamento su Google Search Console

Provate a creare delle regole che ve la cancellino in automatico… su Apache vi basterà modificare il file .httaccess come segue:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^m=1$
RewriteRule ^(.*)$ /$1? [R=301,L]

Se invece utilizzate NGINX, all’interno del vostro server (probabilmente localizzato su /etc/nginx/site-avaliable/default, modificate all’interno del /location aggiungendo questo:

if ($query_string ~ "^m=1$"){
  rewrite ^(.*)$ /$1? redirect;
}

Riavviate poi il servizio di NGINX con:

sudo service nginx restart

Ora potete cliccare su Convalida correzione e aspettare che i bot di Google capiscano che non avete nessuna sorta di errore!

Come pubblicare subito i post pianificati su WordPress

Non so a quanti di voi possa essere utile questa funzionalità, ma in certi casi può tornare utile se avete necessità di utilizzare il campo della data come vero e proprio valore da visualizzare.

Nel caso, vi basterà modificare il file functions.php, come nel caso del blocco dei media per i non admin, e inserire questa funzione:

function prevent_future_type( $post_data ) {
	if ( $post_data['post_status'] == 'future' && $post_data['post_type'] == 'post' ) {
		$post_data['post_status'] = 'publish';
	}
	return $post_data;
}
add_filter('wp_insert_post_data', 'prevent_future_type');
remove_action('future_post', '_future_post_hook');

Ora tutti i post futuri verranno pubblicati immediatamente e risulteranno come ultimi in ordine cronologico (ottimo se utilizzate i post come gestione di eventi o appuntamenti futuri ma volete che siano pubblicati subito).

Come disabilitare l’upload dei media ai non admin su WordPress

Se volete disabilitare l’upload dei Media (quindi immagini e altri file) ai non amministratori (quindi editor, contributors ecc) del vostro sito web o blog basato su WordPress, vi basterà spulciare nel vostro tema nel file functions.php e inserire:

function only_upload_for_admin( $file ) {
    if ( ! current_user_can( 'manage_options' ) ) {
        $file['error'] = 'You can\'t upload images without admin privileges!';
    }
    return $file;
}
add_filter( 'wp_handle_upload_prefilter', 'only_upload_for_admin');

Ora chiunque non è admin, semplicemente non potrà caricare file.

Come cancellare tutti i post di revisione WordPress

Se state cercando un modo per alleggerire il vostro database in cui avete WordPress, che sia per motivi di spazio fisico o per ordine anche solo mentale, che ne dite di cancellare tutti i post di revisione?

Ovviamente questa cancellazione comporterà la perdita di tutti i post di revisione (detti anche inherit).

Solo 249.599 (1/4 di milione) righe risparmiate

Quindi prima di eseguire quella bellissima query, fate un backup al vostro db per evitare perdite non volute.

DELETE FROM wordpress WHERE wp_posts.post_status = "inherit"