Crear Custom Fields per a mostrar un vídeo de forma automàtica en WordPress

De vegades volem automatitzar alguns procesos o tenir l’opció d’introduïr un camp i que sempre es mostre al mateix lloc, com per exemple un vídeo.  En WordPress tenim els “Custom Fields” (i Custom Pots) per a poder crear nous camps i entrades personalitzades. Si el que volem es crear senzillament un nou camp en la zona d’administració per a poder introduïr una adreça de Youtube o Vimeo, podem fer-ho de la següent forma.

Primerament, i utilitzant un tema fill, anem al “functions.php” i posem un codi semblant al següent:

/*
**** Vídeo per a Diània ****
*/

	
add_action('add_meta_boxes', 'videoDiania');
function videoDiania() {
    add_meta_box('video','Video','el_video','post','normal','high');
}

function el_video() {
    global $wpdb, $post;
    $value  = get_post_meta($post->ID, 'video', true);
    echo '<label>Vídeo</label>
    <input type="text" name="video" id="video" value="'.htmlspecialchars($value).'" style="width: 100px;" /> ';
}

add_action('save_post', 'guardar_video');
add_action('publish_post', 'guardar_video');
function guardar_video() {
global $wpdb, $post;
if (!$post_id) $post_id = $_POST['post_ID'];
if (!$post_id) return $post;
$price= $_POST['video'];
update_post_meta($post_id, 'video', $price);
}

La funció “el_video” es senzillament el formulari d’introducció de la URL del vídeo en l’entrada. Apareixerà just davall del post que aneu a crear (si no veieu el camp, cal que anigueu a la part de dalt de WordPress, “Opcions de Pantalla”, i marcar aquest nou camp).

Després creem la funció videoDiania (podeu posar el nom que vulgueu) . Aquesta funció s’afegeix amb un “add_action” a “add_meta_boxes”, que s’encarrega d’afegir precisament els camps “meta” a les entrades.

L’últim troç de codi s’encarrega de guardar aquests camp en la nostra base de dades.

Finalment, inserirem aquest codi en el nostre single.php ( o on desitjeu que es mostre). Utilitzant la funció wp_oembed_get, WordPress s’encarregarà de mostrar el vídeo automàticament.

<?php $video= get_post_meta(get_the_ID(), 'video', true); ?>
<?php echo $embed_code = wp_oembed_get( $video ); ?>

 

Leave a Reply

For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.

I agree to these terms.