Come utilizzare un campo personalizzato come tag di post in WordPress
Per convertire i vecchi campi personalizzati, puoi scrivere un plugin che, all'attivazione, recupera tutti i post con il nome del tuo campo personalizzato e li converte in tag con la comoda funzione wp_set_post_terms
.
Per prima cosa imposta alcune costanti con i nomi dei campi e il tipo di post.
<?php
/**
* CAMBIA QUESTO! qual è il nome del tuo campo personalizzato?
*/
define( 'WPSE29498_FIELD', 'custom_field_name' );
/**
* CAMBIA QUESTO! quale tipo di post?
*/
define( 'WPSE29498_TYPE', 'post' );
Poi la funzione dell'hook di attivazione:
<?php
register_activation_hook( __FILE__, 'wpse29498_field_to_tag' );
function wpse29498_field_to_tag()
{
$posts = get_posts(
array(
'post_type' => WPSE29498_TYPE,
'post_status' => array( 'publish', 'draft', 'pending', 'future' ),
'numberposts' => -1,
'meta_key' => WPSE29498_FIELD
)
);
if( empty( $posts ) ) return;
foreach( $posts as $p )
{
if( $meta = get_post_meta( $p->ID, WPSE29498_FIELD, true ) )
{
wp_set_post_terms( $p->ID, $meta, 'post_tag', true );
}
}
}
Infine, puoi agganciarti a save_post
e verificare se il valore del campo personalizzato è presente. Se c'è, assicurati che non sia già un termine, quindi inseriscilo se non lo è.
Non sono sicuro se sia qualcosa di cui hai bisogno o una conversione una tantum.
<?php
add_action( 'save_post', 'wpse29498_save_post' );
function wpse29498_save_post( $post_id )
{
if( $meta = get_post_meta( $post_id, WPSE29498_FIELD, true ) )
{
// ottieni il tag corrente del post
$terms = wp_get_object_terms( $p->ID, 'post_tag', 'name' );
// se il nostro termine è già presente, esci
if( in_array( $meta, $terms ) ) return;
// aggiungi il termine se non presente
wp_set_post_terms( $post_id, $meta, 'post_tag', true );
}
}

Per quanto ne so, questo non è possibile fare automaticamente "fuori dalla scatola". Una rapida ricerca su Google e sembra che attualmente non ci siano plugin che facciano questo lavoro per te.
Tuttavia, non vedo alcun motivo per cui non si possa scrivere un plugin per farlo. Dovrai utilizzare l'hook "save_post", che verrà eseguito ogni volta che un articolo viene salvato/aggiornato, controllare il campo personalizzato e applicarlo come tag.
La documentazione su questo hook specifico è scarsa, ma viene menzionato qui:

Mi sono imbattuto in una domanda simile tempo fa da parte di qualcuno che chiedeva come aggiungere automaticamente le parole chiave dal plugin All-in-one SEO come tag dei post (http://www.vidalquevedo.com/how-to-add-tags/#li-comment-62)
Dopo aver visto la tua domanda, ho preso quello script che ho scritto e lo ho modificato per aggiungere automaticamente anche i valori dei campi personalizzati come tag dei post.
Ecco il link allo script e al post: http://www.vidalquevedo.com/wordpress-how-to-automatically-convert-custom-fields-to-post-tags/
Grazie, e fammi sapere se ti è stato utile!
Vq.

Penso che la tua soluzione sia aggiungere le parole chiave di 'All in one seo' come tag come ho letto su vidalquevedo.com/how-to-add-tags#comment-123 Non sto usando all in one SEO, inserisco semplicemente un campo personalizzato nel post e voglio che siano i tag per quel post.
