J'aime vraiment la façon dont SE télécharge une image à partir d'une URL (je suis sûr que beaucoup le font!). J'ai cherché, mais je ne trouve pas, existe-t-il un plugin ou une méthode similaire à celle disponible pour WordPress?
Je sais qu'une image peut être téléchargée et compressée directement à partir d'une URL en entrant l'URL de l'image dans la zone Nom du fichier après avoir cliqué sur Envoyer/Insérer un média >> À partir de l'ordinateur >> Choisir un fichier
C'est une fonctionnalité intéressante, mais pas très connue (je viens de la découvrir). Je voudrais quelque chose un peu plus comme SE, où il existe une option qui permet à l'utilisateur de savoir ajouter l'URL de l'image.
Comment puis-je ajouter simplement le champ de fichier de téléchargement à un nouvel onglet de l'utilitaire de téléchargement multimédia?
Voici un tutoriel pour Comment ajouter un nouvel onglet à la page de téléchargement de média dans wordpress , mais je souhaite ajouter uniquement du texte et le champ de téléchargement de fichier à cet onglet. Des idées? Je n'ai rien trouvé dans le codex WordPress qui traite directement de cette fonctionnalité ou du champ de téléchargement de fichier.
Merci.
Répertoire des plugins WordPress - Grab & Save
Ce plugin vous permet de récupérer une image depuis une URL distante et de l’enregistrer dans votre propre médiathèque wordpress. Ainsi, vous ne vous inquiétez jamais si l’image distante a été supprimée par son propriétaire. Cela vous évite également de télécharger l’image sur un ordinateur local et de la télécharger à nouveau dans votre propre wordpress.
Après avoir saisi l'image, wordpress vous invitera à "insérer dans le message" ou à "modifier les attributs" comme après l'envoi d'une image.
vous pouvez écrire un script php, ou créer votre propre plugin de ce code ici, je l'ai utilisé dans l'un de mes projets où j'ai dû importer un grand nombre d'images.
d'abord, récupérez l'image et stockez-la dans votre répertoire de téléchargement:
$uploaddir = wp_upload_dir();
$uploadfile = $uploaddir['path'] . '/' . $filename;
$contents= file_get_contents('http://mydomain.com/folder/image.jpg');
$savefile = fopen($uploadfile, 'w');
fwrite($savefile, $contents);
fclose($savefile);
après cela, nous pouvons insérer l'image dans la médiathèque:
$wp_filetype = wp_check_filetype(basename($filename), null );
$attachment = array(
'post_mime_type' => $wp_filetype['type'],
'post_title' => $filename,
'post_content' => '',
'post_status' => 'inherit'
);
$attach_id = wp_insert_attachment( $attachment, $uploadfile );
$imagenew = get_post( $attach_id );
$fullsizepath = get_attached_file( $imagenew->ID );
$attach_data = wp_generate_attachment_metadata( $attach_id, $fullsizepath );
wp_update_attachment_metadata( $attach_id, $attach_data );
et voila - c'est parti. vous pouvez également définir divers autres paramètres dans le tableau de pièces jointes. Si vous avez un tableau d'URL ou quelque chose du genre, vous pouvez exécuter le script en boucle - mais sachez que les fonctions d'image prennent beaucoup de temps et de mémoire pour s'exécuter.
Vous pouvez utiliser les fonctions download_url()
et wp_handle_sideload()
.
Télécharge une URL dans un fichier temporaire local à l'aide de la classe HTTP WordPress. Veuillez noter que la fonction appelante doit dissocier () le fichier.
Traitez les chargements latéraux, qui consistent à extraire un élément multimédia d'un autre serveur au lieu d'un téléchargement de média traditionnel. Ce processus implique la désinfection du nom de fichier, la vérification du type mime des extensions et le déplacement du fichier dans le répertoire approprié du répertoire de téléchargement.
Exemple:
// Gives us access to the download_url() and wp_handle_sideload() functions
require_once( ABSPATH . 'wp-admin/includes/file.php' );
// URL to the WordPress logo
$url = 'http://s.w.org/style/images/wp-header-logo.png';
$timeout_seconds = 5;
// Download file to temp dir
$temp_file = download_url( $url, $timeout_seconds );
if ( !is_wp_error( $temp_file ) ) {
// Array based on $_FILE as seen in PHP file uploads
$file = array(
'name' => basename($url), // ex: wp-header-logo.png
'type' => 'image/png',
'tmp_name' => $temp_file,
'error' => 0,
'size' => filesize($temp_file),
);
$overrides = array(
// Tells WordPress to not look for the POST form
// fields that would normally be present as
// we downloaded the file from a remote server, so there
// will be no form fields
// Default is true
'test_form' => false,
// Setting this to false lets WordPress allow empty files, not recommended
// Default is true
'test_size' => true,
);
// Move the temporary file into the uploads directory
$results = wp_handle_sideload( $file, $overrides );
if ( !empty( $results['error'] ) ) {
// Insert any error handling here
} else {
$filename = $results['file']; // Full path to the file
$local_url = $results['url']; // URL to the file in the uploads dir
$type = $results['type']; // MIME type of the file
// Perform any actions here based in the above results
}
}
Il existe au moins trois méthodes pour importer des images distantes dans WordPress:
Grab and Save Plugin , qui est mentionné dans l'autre réponse. Ce plug-in est un peu plus ancien et il enregistre directement le fichier. Par conséquent, des vignettes de tailles différentes ne sont pas créées. Dernière mise à jour il y a plus de 2 ans au moment de la rédaction.
Import External Image Plugin a une importation en bloc pour les images liées distantes. Vous devrez peut-être augmenter votre limite de mémoire PHP pour que cela fonctionne. Dernière mise à jour il y a plus de 2 ans au moment de la rédaction.
Enregistrer et importer une image depuis un plug-in d'URL importe l'image à l'aide de fonctions natives. Elle est donc correctement créée dans la médiathèque et toutes les vignettes, etc., sont créées. Ce plugin a été mis à jour pour la dernière fois en 2016 et fonctionne avec WordPress 4.7
Divulgation: J'ai créé le Sauvegarder et importer une image depuis un plugin d'URL