Função que roda dentro de functions.php no wordpress faz upload de imagem com condição que não fique o tempo todo ao carregar a pagina enviando nova imagem ao servidor?
Boa noite amigos, essa é minha primeira postagem no forum. Estou construindo um site e não tenho experiencia em php, estou tendo erros com as funções e não sei como proceder para sanar esses erros.
Estou usando uma função que pega a url do vide em alguns sites adultos e recupera o id do embed, até ai tudo certo e funcionando perfeitamente em sintonia com um formulário Gravity forms para envio dos videos (urls), fui alem atras de um codigo que pudesse pegar o endereço url e roda-lo e encontrar o endereço do thumb dentro da pagina, ao encontrar trazer, fazer uplload para o meu servidor. Feito isso setar a imagem como de destaque, até ai tudo funcionando perfeitamente. O que está me ocorrendo é que as funções estão dentro do functions.php do meu tema Sahifa, e cada vez que é rodado a pagina do video uma nova imagem é enviada ao servidor. Queria juda para impedir que esssa imagem seja carregada, ja pensei em uma função que condicionasse o envio a alguma coisa, no entanto não sei faze-la. Ou então ao encontrar a imagem de nome igual no servidor não enviar outra. Segue a função que está dentro da pagina functions. Desde já agradeço se puderem me ajudar.
Quero condicionar a função de fazer upload das imagens a alguma coisa que vá fazer com que a cada vez que a pagina carregar não vá mandar outra imagem para o servidor. Da forma como está, <?if ($site == 'xvideos'... nas postagens do xvideos, mand a foto daquela postagem novamente ao servidor. talvez se fosse retirado parte da função de envio que cria novo nomes se o arquivo ja existir, pudesse suprir minhas necessidades. Segue o código simplificado abaixo.
<?
// shortcode vídeos
function vid_sc($atts, $content=null) {
extract(shortcode_atts(array(
'site' => 'xvideos',
'id' => '',
'autoplay' => ''
), $atts) );
if ( $site == "xvideos" ) {
$src = $id;
$video = substr(@parse_url($src, PHP_URL_PATH), 6);
$video_id = strtok($video, '/');
if( !empty( $site == 'xvideos' ) ){
$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;
$image_name = $video_id.'.jpg';
$upload_dir = wp_upload_dir(); // Set upload folder
$image_data = file_get_contents($image_url); // Get image data
$unique_file_name = wp_unique_filename( $upload_dir['path'], $image_name ); // Generate unique name
$filename = basename( $unique_file_name ); // Create image file name
$file_path = get_site_url() . '/wp-content/uploads/' . $image_name; // Get the futur file path of the image
if( !file_exists($file_path) ){ // Check if image is already in upload_dir
// Check folder permission and define file location
if( wp_mkdir_p( $upload_dir['path'] ) ) {
$file = $upload_dir['path'] . '/' . $filename;
} else {
$file = $upload_dir['basedir'] . '/' . $filename;
}
// Create the image file on the server
file_put_contents( $file, $image_data );
// Check image file type
$wp_filetype = wp_check_filetype( $filename, null );
// Set attachment data
$attachment = array(
'post_mime_type' => $wp_filetype['type'],
'post_title' => sanitize_file_name( $filename ),
'post_content' => '',
'post_status' => 'inherit'
);
// Create the attachment
$attach_id = wp_insert_attachment( $attachment, $file, $post_id );
// Include image.php
require_once(ABSPATH . 'wp-admin/includes/media.php');
require_once(ABSPATH . 'wp-admin/includes/file.php');
require_once(ABSPATH . 'wp-admin/includes/image.php');
// Define attachment metadata
$attach_data = wp_generate_attachment_metadata( $attach_id, $file );
// Assign metadata to attachment
wp_update_attachment_metadata( $attach_id, $attach_data );
// And finally assign featured image to post
set_post_thumbnail( $post_id, $attach_id );
}
} else { }
}
}
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');
?>Discussão (0)
Carregando comentários...