Suporte » Plugins e hacks » Como criar plugin para adicionar videos aos posts juntamente com thumbs de url

  • Resolvido sjuniorpi

    (@sjuniorpi)


    Como criar um plugin para pegar a url de um video e transforma-la em codigo que é inserido em um embeed e junto a isso puxa uma imagem do url. Estava usando o codigo a baixo para fzer isso, no entanto ele estava em functions.php do meu tema e sempre que a pagina principal era carregada enviava uma nova imagem ao meu servidor, por iso achei melhor fazer por plugin, no entanto nao sei criar o formulario que deveria ter: titulo, categoria, descrição, site e url. Alguem podeme ajudar a encontrar uma solução ou fazer um gancho para que o codigo de upload não fique rodando sempre que alguem visitar o site?

    <?
    function vid_sc($atts, $content=null) {
        extract(shortcode_atts(array(
        'site' => '',
        'id' => $id,
        'autoplay' => ''
        ), $atts) );
    
        if ( $site == "xvideos" ) {
        $src = $id;
        $video = substr(@parse_url($src, PHP_URL_PATH), 6);
        $video_id = strtok($video, '/');
    //pegar endereço e fazer upload da imagem
        $endereco = file_get_contents($id);
        $pegar = preg_match_all('/<meta property="og:image" content=(.+)\/>/',    $endereco, $conteudo);
        $image_s1        = $conteudo[1][0]; // Define the image URL here
        $image_s2 = substr($image_s1, 1);
        $image_s3 = strtok($image_s2, '"');
        $image_url = $image_s3;
        $photo_name = 'testimagename';
        $newId = $post_id;
        // Set Featured Image
        $photo = new WP_Http();
        $photo = $photo->request( $image_url );
        $attachment = wp_upload_bits( $photo_name . '.jpg', null, $photo['body'], date("Y-m", strtotime( $photo['headers']['last-modified'] ) ) );
    
        $filetype = wp_check_filetype( basename( $attachment['file'] ), null );
    
        $postinfo = array(
                'post_mime_type'    => $filetype['type'],
                'post_title'        => $title . ' ',
                'post_content'  => '',
                'post_status'   => 'inherit',
        );
        $filename = $attachment['file'];
        $attach_id = wp_insert_attachment( $postinfo, $filename, $newId );
        if( !function_exists( 'wp_generate_attachment_data' ) )
                require_once(ABSPATH . "wp-admin" . '/includes/image.php');
        $attach_data = wp_generate_attachment_metadata( $attach_id, $filename );
        wp_update_attachment_metadata( $attach_id,  $attach_data );
        set_post_thumbnail($post_id,$attach_id);
        }
    
        if ($site == "xvideos") {
            return '<div class="embed-container xvideos" itemprop="video" itemscope itemtype="http://schema.org/VideoObject"><iframe width="'. $w .'" height="'. $h .'" src="https://flashservice.xvideos.com/embedframe/'. $video_id .'" class="vid iframe-'. $site .'" scrolling="no" allowfullscreen></iframe></div><br>';
        }
    
    }
    add_shortcode('videoin','vid_sc');
    
    //final do plugin
    }
    ?>
A visualizar 5 respostas - de 1 a 5 (de um total de 5)
  • Você vai precisar dividir o seu código em duas partes. A primeira vai ser a que salva a imagem de miniatura do vídeo e a segunda a que cria o html pra incorporar o vídeo à página.

    A segunda pode ser por shortcode mesmo. Dentro da função chamada pelo shortcode você verifica se já tem as imagens daquela URL salvas no seu servidor. Se não tiver, chama a primeira parte do código, que vai salvar as imagens.

    Agora não entendi o que você quer dizer com “o formulario que deveria ter: titulo, categoria, descrição, site e url”. Pelo que percebi do seu código ele está consultando a URL que é colocada no shortcode. Poderia explicar melhor? Assim posso colocar um código de exemplo.

    @sjuniorpi o @claudiosanches tem alguns vídeos e palestras ensinando como criar plugins e nelas ele explica como fazer isto.

    1 – o primeiro passo é criar uma tela no painel de administração do WordPress através do seu plugin.
    Após isto, nesta tela você deve criar apenas o formulário com o input para que digite a url do vídeo a ser buscado.
    Daí um botão para executar o código que você tem acima, após o envio do formulário no painel de admin.
    Mas enfim, você pode olhar no código fonte deste plugin aqui:
    [link removido por um moderador]

    Ele já deve estar obsoleto, não recebe atualizações há algumas versões, então é bom que você não instale no servidor de produção, mas sim analise o código fonte primeiro e retire o que precisa para o seu próprio plugin.
    Espero ter ajudado.

    • Esta resposta foi modificada Há 7 meses, 3 semanas por  pmfonseca.
    • Esta resposta foi modificada Há 7 meses, 3 semanas por  pmfonseca.

    Caso o plugin acima não seja suficiente, você pode tentar olhando este código fonte. Ambos foram adquiridos há algum tempo e já não estão atualizados. Novamente, não instale em seu servidor, apenas olhe o código fonte e copie a lógica utilizada para implementar seu próprio plugin.

    [link removido por um moderador]

    • Esta resposta foi modificada Há 7 meses, 3 semanas por  pmfonseca.
    Moderador pmfonseca

    (@pmfonseca)

    @nerooficial

    Se quiser partilhar código, por favor inclua link para o repositório git, ou para o repositório de plugins.

    @pmfonseca desculpe me. Fui alvoroçado na hora que publiquei, só peguei direto do meu cloud drive.

    Aqui está o link do repositório @sjuniorpi.

    https://github.com/NeroOficial/xvideos-wp-importer

A visualizar 5 respostas - de 1 a 5 (de um total de 5)