• Resolvido LucasMorato

    (@lucasmorato)


    Galera, estou querendo colocar um video no meu tema como featured, ou seja, que seja mostrado pela tag “the_post_thumbnail(”)”, sem usar nenhum plugin. Isso é possível?
    Obrigado!

Visualizando 7 respostas - 1 até 7 (de um total de 7)
  • Você pode trabalhar com metaboxes personalizados, onde definiria um campo adicional no administrador para colocar o iframe, embed ou link da página (conforme for mais apropriado). Precisa de conhecimentos básicos de php e wordpress para implementa-lo.

    Tem um framework pronto pra você usar no github. https://github.com/jaredatch/Custom-Metaboxes-and-Fields-for-WordPress

    Quanto a função nativa do wordpress, ainda não conheço nenhuma realacionada a “video featured”.

    Criador do tópico LucasMorato

    (@lucasmorato)

    Oi amigo, olha vamos ver se vc me ajuda, eu consegui bolar um código e agora está aparecendo o video nos loops (que era oque eu queria mesmo), só que agora, como as imagens tem um “hover effect” nelas, ele está aparecendo no video tb. Eu precisaria criar um if no código para que se quando for video, nao aparecer o hover. É algo simples, da uma olhada:

    <div class="section">
    
       <div class="video-wrapper-post" style="position: relative;">
          <?php echo catch_video() ?>  <!-- mostra video -->
       </div>
    
    <!-- Hover Image -->	
    
       <div class="image-box" style="margin-bottom: 5px;">
    
          <div class="image-box-hover">
             <?php the_post_thumbnail('large');?>
    
                <div class="image-wrapper-hover">
    
                     <!-- conteudo do hover -->	
    
                </div>
          </div>
       </div>
    
    <!-- End Hover Image -->	
    
    <?php the_excerpt(''); ?>
    
    </div>

    Obrigado!

    Hover é efeito ao passar o mouse, formatado por css, não por php. Não ficou claro. Se é pra tirar a div.image-box quando tiver vídeo, você deve inserir uma condicional. Algo parecido com…

    <?php if(catch_video() == true) { ?>
    <div class="video-wrapper-post" style="position: relative;">
          <?php echo catch_video() ?>  <!-- mostra video -->
       </div>
    <?php } else { ?>
    <div class="image-box" style="margin-bottom: 5px;">
          <div class="image-box-hover">
             <?php the_post_thumbnail('large');?>
                <div class="image-wrapper-hover">
                     <!-- conteudo do hover -->
                </div>
          </div>
       </div>
    <?php } ?>

    Agora pra fazer funcionar essa condicional só você que criou a função catch_video poderá saber.

    Criador do tópico LucasMorato

    (@lucasmorato)

    A função é simples, é assim aqui:

    function catch_video() {
      global $post, $posts;
      $first_vid = '';
      ob_start();
      ob_end_clean();
      $output = preg_match_all('/<iframe.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
      $first_vid = $matches [1] [0];
    
      if ($output == '1') {
      echo '<iframe width="100%" height="400" src="';
      echo $first_vid;
      echo '" frameborder="0" allowfullscreen></iframe>';
      }
    }

    Acho que só seria esse código mesmo q vc postou né?

    Criador do tópico LucasMorato

    (@lucasmorato)

    Olha artefael, coloquei esse if, mais sumiu os thumbs de imagens tb, oq será?


    Lucas, você tem conhecimentos de php? Me parece que você pegou o código pronto. Por mais que se resolva o problema é importante que você entenda o código que você está usando, caso contrário viverá de gambiarras e poderá ter bem mais problemas na criação de temas pra wordpress. Esqueça o primeiro código que postei. Na função que você criou, substitua para:

    function catch_video() {
    	global $post, $posts;
    	$first_vid = '';
    	ob_start();
    	ob_end_clean();
    	$output = preg_match_all('/<iframe.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
    	$first_vid = $matches [1] [0];
    
    	if ($output == '1') {
    		echo '<iframe width="100%" height="400" src="';
    		echo $first_vid;
    		echo '" frameborder="0" allowfullscreen></iframe>';
    	} else { ?>
    		<div class="image-box" style="margin-bottom: 5px;">
    			<div class="image-box-hover">
    				<?php the_post_thumbnail('large');?>
    				<div class="image-wrapper-hover">
    				 <!-- conteudo do hover -->
    				</div>
    			</div>
    		</div>
       <?php }
    }

    e substitua:

    <div class="video-wrapper-post" style="position: relative;">
          <?php echo catch_video() ?>  <!-- mostra video -->
       </div>
    
    <!-- Hover Image -->	
    
       <div class="image-box" style="margin-bottom: 5px;">
    
          <div class="image-box-hover">
             <?php the_post_thumbnail('large');?>
    
                <div class="image-wrapper-hover">
    
                     <!-- conteudo do hover -->	
    
                </div>
          </div>
       </div>
    
    <!-- End Hover Image -->

    por

    <?php catch_video(); ?>

    Criador do tópico LucasMorato

    (@lucasmorato)

    Valeu artefael! Cara, eu estava desesperado atras disso funcionando! Hahaha Agora deu certo! Bem eu imaginava que teria que usar o else, mas estava achando que era pra usar no código da pagina e nao na função…
    Então eu to mexendo mesmo com php e wordpress a umas 3 semanas, antes disso eu só sabia fazer aquelas continhas(que aprendi nas aulas de php da faculdade) hahaha

Visualizando 7 respostas - 1 até 7 (de um total de 7)
  • O tópico ‘Video como Featured’ está fechado para novas respostas.