Using Custom Bulk Actions – Azioni di gruppo

I’m happy to tell you that in WordPress 4.7, developers can register their own bulk actions on list table screens.

custom-bulk-action-screenshot

Let’s walk through the steps required to add one.

An option in the dropdown

To add an option in the Bulk Actions dropdown HTML element, register a callback on the bulk_actions-{screen_id} filter that adds the new option onto the array. Replace {screen_id} with the ID of the admin screen to offer the bulk action on.

To add a bulk action “Email to Eric,” we could use the following code:

1
2
3
4
5
6
add_filter( 'bulk_actions-edit-post', 'register_my_bulk_actions' );
function register_my_bulk_actions($bulk_actions) {
  $bulk_actions['email_to_eric'] = __( 'Email to Eric', 'email_to_eric');
  return $bulk_actions;
}

Handling the form submission

To handle a bulk action form submission, register a callback on the handle_bulk_actions-{screen_id} filter for the corresponding screen. The filter expects the redirect URL to be modified, so be sure to modify the passed $redirect_url. This allows us to carry success or failure state into the next request to display a notice to the user. The other callback arguments will differ depending on the screen here to include contextually relevant data.

To add a bulk action handler for emailing the selected posts, we could use the following code:

1
2
3
4
5
6
7
8
9
10
11
12
add_filter( 'handle_bulk_actions-edit-post', 'my_bulk_action_handler', 10, 3 );
function my_bulk_action_handler( $redirect_to, $doaction, $post_ids ) {
  if ( $doaction !== 'email_to_eric' ) {
    return $redirect_to;
  }
  foreach ( $post_ids as $post_id ) {
    // Perform action for each post.
  }
  $redirect_to = add_query_arg( 'bulk_emailed_posts', count( $post_ids ), $redirect_to );
  return $redirect_to;
}

Showing notices

We could use the existing notice hooks to let the user know what happened, depending on the state we set in the URL:

1
2
3
4
5
6
7
8
9
10
11
12
13
add_action( 'admin_notices', 'my_bulk_action_admin_notice' );
function my_bulk_action_admin_notice() {
  if ( ! empty( $_REQUEST['bulk_emailed_posts'] ) ) {
    $emailed_count = intval( $_REQUEST['bulk_emailed_posts'] );
    printf( '<div id="message" class="updated fade">' .
      _n( 'Emailed %s post to Eric.',
        'Emailed %s posts to Eric.',
        $emailed_count,
        'email_to_eric'
      ) . '</div>', $emailed_count );
  }
}

For the curious, see the related changeset and Trac ticket.

[SEO] Come posizionare il tuo sito in google dopo meno di 1 ora dalla registrazione del dominio

Nell’ultimo anno, ho sperimentato nuove nicchie, alcune redditizie altre un pò meno, tutto per guadagnare seriamente su internet, ma anche a scopo didattico per cercare scientificamente come permettere a google di indicizzare un Dominio appena acquisto tra le serp, senza dover attendere settimane.

In realtà, ho trovato una soluzione, abbastanza scientifica che mi permette di includere un blog su un Dominio personalizzato e su un web hosting decente in pochissimo tempo, tutto senza dover ricorrere a trucchi particolari o ad altri sotterfugi, ma utilizzando semplicemente gli strumenti messi a disposizione dal repository di WordPress e da Google stesso.

Cosa Fare su WordPress:

  1. La prima e sicuramente più importante cosa da fare su WordPress, dopo averlo installato sul tuo Dominio e sul tuo hosting è quella di cancellare immediatamente la pagina “Pagina di Esempio” e l’articolo “Ciao Mondo“, altrimenti, posso garantirtelo, saranno i primi ad essere indicizzati.
  2. Se hai creato il tuo blog in una sandbox (a dire il vero anche se non lo hai fatto) è arrivato il momento di pubblicare i tuoi primi articoli, ne bastano un paio, ma se ne hai da scrivere di più che ben venga;
  3. Adesso dovresti installare il plugin  Google XML Sitemap che puoi trovare nella sezione dei plugin gratuiti da wordpress, o installarlo dalla tua bacheca sotto “Plugin->Aggiungi Nuovo”
  4. Scaricalo, installalo e attivalo; per il momento potrai chiudere il tuo blog; ci ritorneremo più tardi.

Utilizzare Google Webmaster Tools:

A questo punto è arrivato il momento di utilizzare google Webmaster tools per includere il tuo nuovo blog su google, e per inviare la sitemap, l’operazione è più semplice a farsi che a dirsi, ma ci proverò lo stesso.

  1. Collegati al sito di Google Webmaster tools e accedi con il tuo account Google, se non  ne hai uno, puoi crearlo gratuitamente ottenendo così anche un indirizzo di posta elettronica Gmail.
  2. Sulla destra c’è un pulsante, anche abbastanza discreto visto che ha lo sfondo rosso che dice “Aggiungi Un sito”, cliccaci su ed inserisci l’indirizzo del sito nel formato www.sito.com, senza inserire http://.
  3. Dopo aver inserito l’url, dovrai verificare la proprietà del sito, potrai farlo caricando via FTP il file che ti fa scaricare google, e cliccando su verifica sito.
  4. Terminata l’operazione precedente, non ti resta che inviare la sitemap, che nel frattempo è stata creata in automatico dal plugin che hai scaricato ed installato sul tuo blog in precedenza.
  5. Per inviare la sitemap, sempre nel google webmaster tools spostati nella sezione “Ottimizzazione” e poi “Sitemap” anche qui un pulsante ti indicherà chiaramente come inserire la sitemap del tuo sito cliccaci su e nel campo di testo che apparirà inserisci “sitemap.xml.gz“.
  6. Se sotto la voce “stato” apparirà “In Attesa” vuol dire che hai fatto tutto bene

Ora ti basterà andarti a fumare un paio di sigarette, farti un caffè o una doccia, e quando tornerai, il tuo blog sarà già su google, comunque controlla digitando l’indirizzo dello stesso sul motore di ricerca.

 

Fonte: www.wpcode.net

How to migrate wordpress blog

This weekend I migrated my blog to a new vps, the article describes how to configure and install a blog based on wordpress with lighttpd and mysql. The reference platform is Debian Squeeze.

1. Backup your blog

From old vps,  stop Service

/etc/init.d/lighttpd stop
/etc/init.d/mysqld stop

Backup database

cd /root
mysql -u wp_admin -p wordpress > ./wordpress_db_backup.sql
tar -pczf wordpress_db_backup.sql.tar.gz ./wordpress_db_backup.sql

Backup content

tar -pczf sitebackup.tar.gz /var/www/yourwordpressblog/

2. Copy data from old vps

From new vps, transfer site backup

scp root@oldvps:/root/sitebackup.tar.gz ./

Transfer database backup

scp root@oldvps:/root/databasebackup.tar.gz ./

3. Install and Configure Mysql

Install MYSQL

apt-get install mysql-server mysql-client

Create Password for the Mysql user root

mysqladmin -u root password yourrootsqlpassword

Create database

mysqladmin -u root -p create wordpress

Set permission to user wp_admin on database with name “wordpress”

mysql -u root -p
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_admin'@'localhost' IDENTIFIED BY 'wp_admin_password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_admin'@'localhost.localdomain' IDENTIFIED BY 'wp_admin_password';
FLUSH PRIVILEGES;
quit;

Extract dabase backup

tar xvfz wordpress_db_backup.sql.tar.gz

Restore database

mysql -u wp_admin -p wordpress < wordpress_db_backup.sql

4. Install and configure Lighttpd with php

Install lighttp

apt-get install lighttpd

Install php

apt-get install php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Configure Lighttpd

ln -s /etc/lighttpd/conf-available/05-auth.conf /etc/lighttpd/conf-enabled/05-auth.conf
ln -s /etc/lighttpd/conf-available/10-fastcgi.conf /etc/lighttpd/conf-enabled/10-fastcgi.conf
ln -s /etc/lighttpd/conf-available/10-simple-vhost.conf /etc/lighttpd/conf-enabled/10-simple-vhost.conf
ln -s /etc/lighttpd/conf-available/15-fastcgi-php.conf /etc/lighttpd/conf-enabled/15-fastcgi-php.conf

Edit /etc/lighttpd/lighttpd.conf and enable “mod_rewrite”

From this:

#	"mod_rewrite";

to this:

	"mod_rewrite"

Save and close.

Configure wordpress site on lighttpd
Edit /etc/lighttpd/conf-available/10-simple-vhost.conf

Insert:

## Your wordpress blog
$HTTP["host"] == "www.yourwordpressblog.com" {

        server.document-root = "/var/www/yourwordpressblog/"
        server.errorlog = "/var/log/lighttpd/yourwordpressblog/error.log"
        #accesslog.filename = "/var/log/lighttpd/yourwordpressblog/access.log"
        url.rewrite = (
                "^/(wp-admin|wp-includes|wp-content|download)/(.*)" => "$0",
                "^/(sitemap.xml|sitemap.xml.gz|robots.txt)" => "$0",
                "^/(.*.php)" => "$0",
                "^/(.*)$" => "/index.php/$1"
        )
        url.access-deny = ("wp-config.php")
}

#OPTIONAL: Secure rules to protect /wp-admin/
auth.backend = "htdigest"
auth.backend.htdigest.userfile = "/etc/lighttpd/.passwd"
#auth.debug = 2

auth.require = ( "/wp-admin/" =>
(
"method" => "digest",
"realm" => "Authorized users only",
"require" => "valid-user"
)
)

#OPTIONAL: Redirect rule in case of multiple domain
$HTTP["host"] =~ "www.yourwordpressblog.it|yourwordpressblog.it|www.yourwordpressblog.net|yourwordpressblog.net|www.yourwordpressblog.org|yourwordpressblog.org" {
  url.redirect = ( "^/(.*)" => "http://www.yourwordpressblog.com/$1" )
}

Save and close.

Create Log directory

mkdir /var/log/lighttpd/yourwordpressblog

Set Permission

chown www-data:www-data /var/log/lighttpd/yourwordpressblog

Optional step, to protect /wp-admin/ folder create “.passwd” file:
Install htdigest

apt-get install apache2-utils

Create “.passwd” file

htdigest -c /etc/lighttpd/.passwd ‘Authorized users only’ administrator

Exctract sitebackup.tar.gz

tar xvfz sitebackup.tar.gz

Move the content of the blog in /var/www/yourwordpressblog

mv ./sitebackup /var/www

Set permission:

chow -R www-data:www-data /var/www/yourwordpressblog

Restart lighttpd

/etc/init.d/lighttpd restart

Now the blog has been migrated to the new vps, comments are available to you if you have any suggestions.

NOTE:
If  permalink don’t work, and return error 404, check if rows below are there :

# BEGIN WordPress

<IfModule mod_rewrite.c>
ErrorDocument 404 /index.php?error=404
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Thanks,

Add Your Own Domain to Your WordPress.com Blog – How-To Geek

Now that you’ve got a nice blog on WordPress.com, why not get your own domain to brand your site?  Here’s how you can easily register a new domain or move your existing domain to your WordPress site.

By default, your free WordPress address is yourblog’sname.wordpress.com.  But whether this is a personal or a company blog, it can be nice to have your own domain to really brand your site and make it your own.  Or, if you already have another website and want to use WordPress as a blog for it, you could even add blog.yoursite.com or any other subdomain.

Adding a domain to your WordPress.com is a paid upgrade; registering and mapping a new domain to your account costs $14.97 a year, while mapping a domain you already own to your WordPress blog costs $9.97 a year.

Getting Started

Login to your blog’s dashboard, click the arrow beside Upgrades in the sidebar, and select Domains.

image

Enter the domain or subdomain you want to add to your site in the text box, and click Add domain to blog. Continue reading

Blog privato – WordPress › Private WP « WordPress Plugins

Private WP

Author: Jakob Kruse

Private WP will make sure people can only read your blog after they log in. Already logged in users will see no difference. Users who are logged out will get the login page, and only that.

Use this for private “intranet style” blogs, or closed community sites.

Note that the plugin offers no options. Activate it to turn it on, deactivate it to turn it off!

If you also use Windows Live Writer, be sure to check out WLW Login.

http://downloads.wordpress.org/plugin/private-wp.1.1.zip

Blog privato – Private Only « WordPress Plugins

Private Only

Author: Kate Mag (Pixel Insert)

Do you have a private blog that you only want your friends and family to see and read it? This plugin will redirect all users who aren&apos;t logged in to the login form where they are shown a user-friendly message It also block Feeds

New Features! Custom Login. You can change background page, login form, disable wordpress logo, button Log In text color.

Download a Private Only package file, extract a private-only directory from ZIP file, upload it to WordPress Plugins directory ‘/wp-content/plugins/’ See Settings on WP Admin, look for Private Only Custom Login settings

http://downloads.wordpress.org/plugin/private-only.zip

Creare un blog privato con WordPress » Web 3.0 Notes

Creare un blog privato con WordPress

di nemoprincess

Pubblicato February 7th, 2009 at 5:41 pm

WordPress nasce come piattaforma di blogging. Tutti sappiamo cos’è un blog. Poi si migliora e si diffonde così tanto (anche grazie al contributo dei tantissimi sviluppatori che rilasciano nuovi plugin ogni giorno), che ormai sempre più spesso viene utilizzato, non solo come piattaforma per blog, ma anche per siti vetrina, ecommerce e quant’ altro.

A me è capitato di avere queste specifiche:

* blog privato: post solo per utenti registrati

* gruppi di utenti che accedono solo a determinate categorie

* feed rss autenticati: ogni utente deve poter leggere solo i feed dei post appartenenti ad una determinata categoria

Vi spiego come ho risolto, anche perchè mi ci è voluto un bel pò, per testare plugin e cercare la giusta combinazione affinchè tutto funzionasse come si desiderava.

La prima cosa da fare è creare dei gruppi di utenti. WordPress ne definisce alcuni di default: Amministratori, Autori, Sottoscrittori, ecc. Ma a me servono solo dei gruppi diversi di lettori. Il plugin che fa al caso nostro è Role Scoper. Con Role Scoper, che non è ancora arrivato al rilascio della versione definitiva, è possibile creare altri gruppi di utenti. Una volta creati i gruppi è possibile assegnare a tali gruppi gli utenti che ne faranno parte. Grazie a Role Scoper possiamo restringere i permessi degli utenti, in base ai post, ai tag, alle pagine, alle categorie. In questo modo assegno ad ogni gruppo il diritto di leggere solo i post della categoria corrispondente. Ho “già” risolto i primi due punti. Manca il terzo. In questo caso c’è un plugin che gestisce i feed con autenticazione in modo ottimo. Crea infatti una chiave di autenticazione basata sulla mail o sul nome utente e la memorizza nel database, così l’ accesso ai feed non avviene più tramite user e password ma tramite questa chiave passata tramite l’ indirizzo del feed come variabile di accesso. Purtroppo però questo plugin, FeedKey, a me non ha funzionato. Poi ho scoperto che c’ era un altro plugin in grado di gestire le restrizioni sui post: Wp-Sentry, che tra le altre funzionalità (simili a Role Scoper) integrava proprio Feedkey. Così ho ristretto l’ accesso al blog con Wp-Sentry, gestendo l’ autenticazione dei feed tramite Feedkey integrato. Poi ho gestito la restrizione sulle categorie con Role Scoper.

Infine qualche tocco finale. Senza autenticazione non si visualizza nulla, ma la home restituisce una bruttissima pagina di errore 404. Ho modificato la struttura del template della pagina 404 del mio tema, inserendo un messaggio di avviso per gli utenti: “E’ necessario loggarsi per visualizzare gli articoli” e successivamente con un refresh in html li porto direttamente ad una pagina appositamente allestita per il login. Non la pagina di login di WordPress. Ho integrato il login tramite il plugin Sidebar Login che porta le funzioni di autenticazioni ovunque vogliate all’ interno del blog. Personalizzandolo un pò si ottiene una piccola pagina di benvenuto, che dopo il login, saluta l’ utente e l’ aiuta a gestire il proprio accesso e il proprio profilo.

Altra piccola chicca: Feedkey stampa il codice personalizzato solo e soltanto nella pagina di profilo. Io volevo invece che ad ogni utente apparisse nell’ header del sito, anzichè il link generico dei feed il proprio personale. Con qualche riga di codice ho recuperato la key dal database di WordPress e l’ ho sostituita a quella generica. Il codice per ottenere il link dei Feed per uno specifico utente lo ottenete così:

<a href=”

<?php

global $current_user;

$feedvalue = $wpdb->get_var(“SELECT meta_value

FROM $wpdb->usermeta WHERE user_id=&apos;$current_user->ID&apos;

AND meta_key=&apos;feed_key&apos;”);

echo

(get_bloginfo(&apos;url&apos;).(“?feed=rss2&feedkey=”).

($feedvalue));?>”>Post RSS Feed</a>

Inoltre (abbiamo davvero finito…): Volevo che gli utenti si potessero registrare ma che la registrazione fosse approvata dall’ amministratore. Altro plugin che arriva in soccorso: Confirm User Registration.

A questo punto abbiamo un blog privato, accessibile solo agli utenti registrati approvati dall’ amministratore. Gli utenti possono leggere solo determinate categorie secondo il proprio gruppo di appartenenza e possono restare aggiornati abbonandosi a feed personalizzati, “a misura di utente”.

fonte:http://www.nemoprincess.it/blog/wordpress/creare-blog-privato-con-wordpress.html

Tema WordPress: BranfordMagazine » WordPress Italy Blog

BranfordMagazine è un tema pensato per tutti coloro che cercano di dare al proprio blog l’aspetto di un sito di news, di magazine appunto. Nato dalla ispirazione di tre altri temi simili (“Revolution” di Brian Gardner, “Mimbo” di Darren Hoyt e “Structure” di Justin Tadlock), BranfordMagazine è stato creato da Der-Prinz.

Il tema si presenta con una notizia principale in primo piano, e le altre sezioni che possono essere organizzate attraverso l’utilizzo dei campi personalizzati.

Tema WordPress: BranfordMagazine » WordPress Italy Blog.

Home page dell’ autore