Introdução:

Olá pessoal, hoje eu venho mostra para vocês, como executar um vídeo a partir de um click na thumbnail, em um tema WordPress sem a necessidade der instalar vários plugins.

Nesse tutorial, eu só vou utilizar o plugin Advanced Custom Fields, para simplificar a criação dos campos personalizados e também a biblioteca chamada FitVids.JS para otimizar o seu player de vídeo.

Colocando a mão no código:

Primeiro de tudo, vamos fazer download do FitVids.JS e colocar o mesmo dentro da sua pasta JS do seu tema e agora abra o seu functions.php e adicione o código abaixo, mas tenha muita atenção no caminho do arquivo, se está apontando para a pasta correta.

<?php
function add_enqueue_scripts() {
wp_enqueue_script( 'fitvids', get_template_directory_uri() . '/assets/js/jquery.fitvids.js', array(), null, true );
}
add_action( 'wp_enqueue_scripts', 'add_enqueue_scripts', 1 );

Agora vamos para a parte da criação dos custom fields, como eu disse antes eu vou utilizar o Advanced Custom Fields para facilitar a criação e aplicação dos campos.

Criação dos campos:

  1. Clique no Adicionar Novo, para iniciar a criação dos nossos campos:
    Adicionar Custom Fields
  2. Eu vou criar uma regra, de quando o formato do post for igual à Vídeo eu vou adicionar os meus Campos Personalizados:
    Regra de Formato
  3. Agora vamor criar dois campos, um para o link do vídeo que é um campo simples de texto e outro para imagem que já um pouco mais “chatinho” para configurar, por isso que eu vou deixar logo abaixo um GIF para facilitar a configuração:
    Campo de Imagem
  4. Agora é só publicar o nosso grupo de campos e iniciar o proxímo, passo:
    Campos do Vídeo

Aplicando o vídeo no post:

Vamos para a aplicação do vídeo em nosso post, mas como eu apliquei uma regra para quando o formato do post for igual à vídeo, então o seu tema tem que ter suporte para Formatos de Post.

Post Formats

Se o seu tema não tiver o suporte é só aplicar no seu functions.php:

<?php
/**
* Add support for Post Formats.
*/
add_theme_support( 'post-formats', array(
'video',
// 'aside',
// 'gallery',
// 'link',
// 'image',
// 'quote',
// 'status',
// 'audio',
// 'chat'
) );

Nesse código acima eu deixei o suporte para o formato de vídeo apenas, mas se você desejar para os outros estilos é só remover //” que ele vai adicionar os outros formatos também.

Agora quando vocês selecionarem o formato de vídeo, automáticamente vai ser adicionado os nossos campos personalizados, que criamos anteriormente.

select-format

Criando o arquivo de conteúdo de vídeo:

Vamos para a parte mais “complicada” nesse tutorial, agora vamos fazer a criação do arquivo que vai receber o nosso código para a criação e verificação do vídeo.

Normalmente todos os loops de conteúdo:

<?php
if ( have_posts() ) :
// Start the Loop.
while ( have_posts() ) : the_post();
/*
* Include the post format-specific template for the content. If you want to
* use this in a child theme, then include a file called called content-___.php
* (where ___ is the post format) and that will be used instead.
*/
get_template_part( 'content', get_post_format() );
endwhile;
// Post navigation.
posts_nav_link();
else :
// If no content, include the "No posts found" template.
get_template_part( 'content', 'none' );
endif;
?>

a parte mais importante é o get_post_format() que vai fazer a verificação do nosso formato e chamar o nosso arquivo personalizado content-video.php.

No código abaixo eu vou criar e detalhar cada linha, para vocês e ficar simplificada a criação do nosso arquivo content-video.php:

<?php
/**
* The video content template.
*
*/
?>
<article id="post-<?php the_ID(); ?>" <?php post_class('loop-videos'); ?>>
<header class="entry-header">
<?php
if ( is_single() ) :
the_title( '<h1 class="entry-title">', '</h1>' );
else :
the_title( '<h2 class="entry-title"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h2>' );
endif;
?>
</header><!-- .entry-header -->
<div class="entry-content">
<?php
// Apresenta o conteúdo somente dentro da single com o formato de vídeo
if ( is_single() ) :
the_content();
// Pega o link do vídeo
$link_do_video = get_field('link_do_video');
// Pega o link da imagem personalizada
$thumbnail_personalizada = get_field('thumbnail_personalizada');
// Verifica se existe o link cadastrado
if( !empty( $link_do_video )) : ?>
<div class="video-featured">
<?php
// https://codex.wordpress.org/Function_Reference/wp_oembed_get
echo wp_oembed_get( $link_do_video );
// Veririfica se existe a imagem cadastrada
if( !empty($thumbnail_personalizada)) : ?>
<button id="play-video" style="background-image: url(<?php echo $thumbnail_personalizada; ?>);">
<span class="dashicons dashicons-controls-play"></span>
</button>
<?php endif; ?>
</div>
<?php
endif;
// Apresenta o conteúdo na listagem dos post's junto com a função wp_trim_words() limitando em 40 caracteres
else :
echo wp_trim_words( get_the_content(), 40, '...' );
endif;
?>
</div><!-- .entry-content -->
</article><!-- #post-## -->

Processos finais do tutorial

Agora é a parte da criação do nosso script e style para fazer tudo funcionar, perfeitamente…

Primeiramente, vamos criar o arquivo chamado script-video.js, ele vai ser o responsável para a aplicação do nosso fitVids e também da criação da função de play.

jQuery(document).ready(function($) {
// Adiciona o fitVids no frame de vídeo dentro da class = video-featured
$( '.video-featured' ).fitVids();
// Adiciona o icone de video no título com post-format = video
$( '.loop-videos .entry-title').prepend('<span class="dashicons dashicons-video-alt"></span> ');
// Função do click com autoplay
$('#play-video').on('click', function(event) {
$('.fluid-width-video-wrapper iframe')[0].src += '&autoplay=1';
event.preventDefault();
$(this).fadeOut('slow', function(){
$(this).remove();
});
});
});

Como vocês viram toda a função de click foi relacionada com a fitVids, porque  a classe .fluid-width-video-wrapper é aplicada automáticamente, através da interação com a galeria aplica por nós.

Agora é o processo mais “simples” que é parte de CSS, vamos para o style-video.css para da um estilo melhor a nossa apresentação.

.loop-videos .entry-title{
display: table;
vertical-align: middle;
}
.loop-videos .entry-title .dashicons{
display: table-cell;
font-size: 33px;
padding-right: 0.1em;
vertical-align: middle;
}
.loop-videos .video-featured{
position: relative;
}
.loop-videos .video-featured > #play-video{
cursor: pointer;
position: absolute;
background-position: top center;
background-size: cover;
top: 0;
right: 0;
bottom: 0;
left: 0;
width: 100%;
height: 100%;
border-radius: 0;
border: none;
z-index: 1;
}
.loop-videos .video-featured > #play-video .dashicons-controls-play{
display: table;
font-size: 8em;
margin: 0 auto;
position: relative;
text-shadow: 4px 4px 2px rgba(150, 150, 150, 1);
color: #333333;
border-radius: 50%;
border: 5px solid #333333;
-moz-transition: all 1s ease-in;
-webkit-transition: all 1s ease-in;
-o-transition: all 1s ease-in;
transition: all 1s ease-in;
}
.loop-videos .video-featured > #play-video:hover .dashicons-controls-play{
color: #ffffff;
border-color: #ffffff;
}

Agora para finalizar vamos só chamar os nossos arquivos dentro do functions.php, mas como eu já falei antes… Tenha muita atenção com o caminho dos seus arquivos, porque se o mesmo estiver errado nada vai funcionar perfeita… 🙂

Outra coisa, eu apliquei de diferente foi o suporte do Dashicons para o frontend. Não sei todos o conhece, mas é uma galeira de icones padrão do próprio WordPress, mas o mesmo só funciona no frontend se você estiver logado como admin ou outro usuário, mas para “abilitar” ele é só aplicar a chamada dele como foi feito na linha “4” do código logo abaixo:

<?php
function odin_enqueue_video() {
// Adiciona Suporte a galeira de icones do proprio WordPress
wp_enqueue_style( 'dashicons' );
// Aplicação do Script de Vídeo
wp_enqueue_script( 'script-video', get_template_directory_uri() . '/assets/js/script-video.js', array(), null, true );
// Aplicação do Estilo de Vídeo
wp_enqueue_style( 'style-video', get_template_directory_uri() . '/assets/css/style-video.css', array(), null, 'all' );
}
add_action( 'wp_enqueue_scripts', 'odin_enqueue_video', 1 );

Ufa!!! Acabamos, heheheheh….

Agora é só verificar como tudo ficou e se está tudo funcionando perfeitamente…

Vídeo Rodando

Espero que vocês tenham gostado desse tutorial e até breve ?

Por favor, se você gostou deixe seu like e também se possível compartilhe.

César Ribeiro
Written by

Hi, my name’s Cesar H. Ribeiro, I’m Brazilian and I live in São Paulo country town. I’ve been working with Web Development since 2006, I’m Web Developer Freelancer, my main specialty is deploying custom Web Sites using the WordPress platform with base, transforming PSD/Layouts for Custom Themes. In feel years with Developer Freelancer, I worked with many agencies around the world like: Brazil, Australia, USA, Germany and Austria.

Related Posts