Comment puis-je télécharger en bloc des images et créer automatiquement des publications pour chacune d'elles en même temps?

9

Je sais comment télécharger plusieurs images dans un message existant, mais le scénario est différent. Il s’agit d’un vaste catalogue d’actifs, chaque article de type article personnalisé représentant un élément d’image (une image unique est donc affectée en tant qu '"image en vedette" pour chaque article).

L'ensemble du système fonctionne très bien pour la création d'actifs un par un, mais prend beaucoup trop de temps. Je dois être en mesure de "mettre en lot" plusieurs images à la fois, puis de créer un nouveau message pour chaque image, puis de joindre l’image au nouveau message en tant qu '"image sélectionnée".

Il n'y aura pas de contenu textuel entré pour chaque publication - juste quelques assignations de métadonnées et de taxonomie personnalisée. Il devrait donc être possible d'affecter par lot les métadonnées et la taxonomie au cours de ce processus de création de lot.

J'ai recherché des solutions de post-création XML-RPC (qui ne gère généralement pas le téléchargement / l'assignation d'images) pour des plug-ins qui extraient des fichiers d'un répertoire de serveur vers la bibliothèque multimédia (ce qui ne couvre pas la post-création), et jQuery plusieurs uploaders de fichiers (qui ne font que vider des fichiers dans un répertoire).

Je connais assez bien php, j'ai construit des plugins et des thèmes, mais je suis perplexe sur la façon de gérer ce processus, car il nécessite la première étape consistant à transférer temporairement les fichiers sur le serveur, puis à générer des publications sur les fichiers téléchargés et attribuer des métadonnées d'identification à l'ensemble du lot.

J'espère que cela pourra être fait dans un panneau d'administration personnalisé, mais si je dois le faire en dehors de wp-admin, c'est très bien aussi.

Des idées?

    
posée somatic 09.09.2010 - 23:23

3 réponses

5

Il existe ce plugin: plug-in de messages d'image en vedette automatique

.

À partir de la page du plugin:

  

Posts automatiques de l'image sélectionnée crée un nouveau message avec une image sélectionnée chaque fois qu'une image est téléchargée. Sur la page des paramètres du plug-in, vous pouvez configurer l'image pour qu'elle soit publiée et s'auto-attribuer à l'un de vos autres types et / ou formats de publication personnalisés existants.

En principe, chaque image téléchargée génère un message (du type de message que vous avez choisi) et est définie en tant qu'image sélectionnée de ce message.

Je l'ai installé sur mon ordinateur local. La page des paramètres ressemble à ceci et vous permet de sélectionner le type de publication, y compris les types de publication personnalisés, auxquels vous souhaitez affecter des téléchargements de photos et le statut de publication souhaité.

Pourmettrelepluginenpratique,accédezautypedemessagequevousavezchoisi,ouvrez-enunnouveauetenvoyezlemédia.

Pourtransférerdesphotosenbloc,mettezensurbrillanceplusieursphotosdanslaboîtededialogue"Télécharger". Je mets en surbrillance 8 photos ici, mais je ne vois aucune raison pour que ce ne soit ni 80 ni 800, à moins que le téléchargement d’images wordpress ne connaisse des limites.

Lestitresdespublicationssontdéfinisparlesnomsdefichierimage.Vousdevriezpouvoirtravailleraveccelaetlesappelerdansvotrethèmeavecthe_title()

J'aitestélocalementetcelafonctionnedansWordpress3.6.

Jesuissûrqu'ilexisteunmoyenplusrobusteouplusflexibled'yparvenir,maisdanscecas,leplug-insemblefaireexactementcequevousdemandez,àl'exceptiondel'attributiondemétadonnées.Peut-êtrequequelqu'und'autrepourraitpréciserunpeucettepartie.

Sivousaviezbesoind'uncontenudepublicationgénérédynamiquement,vouspouvezaumoinscommencerparleplug-ineteffectueruneitérationàpartirdelà.Onpensaitutiliserdespost-formatsoudesmodèlesdepagepourdéterminerlemoded'affichagedespublications.

Remarque:Assurez-vousquetousvosimage_sizessontdéfinisdansfunctions.php.Jedétesteraisdevoirannuler/supprimer10000photos,ouexécuterune"régénération de vignettes" extrêmement longue juste parce que j'avais oublié ou changé la taille de l'image!

    
réponse donnée timshutes 15.08.2013 - 03:23
4

Ce script est une preuve de concept (testé et fonctionnel), ce n'est pas un plugin, il est destiné à être piraté, il suppose quelques éléments:

  1. Il utilise wp_insert_post . Il est donc conseillé de ne pas l’accrocher à un hook d’administrateur, aussi lancez-le une fois!
  2. Les images doivent se trouver dans le dossier wp-content\uploads . Si vous voulez changer cela, il vous faudrait plus de sauts. L'exemple utilise un dossier personnalisé appelé \images dans le dossier de téléchargement, vous pouvez modifier cette partie.
  3. Il ne vérifie pas les erreurs, je ne l'ai testé que sur un dossier de 20 images, les résultats peuvent donc varier:)

Le code ci-dessous parcourt le dossier wp-content\uploads\images et crée un titre de publication basé sur le nom de l'image qui y est attachée. Vous voulez probablement changer ceci en quelque chose de meilleur ou possible d'entrer des métadonnées en utilisant d'autres données dont vous disposez (Exif peut-être).

function WPSE_1595_image_post() {

    // We need to use the default uploads dir
    $wp_upload_dir =  wp_upload_dir();
    // The actual folder
    $wp_upload_images = $wp_upload_dir['basedir'] . '/images';

    require_once(ABSPATH . 'wp-admin/includes/image.php');

    foreach (new DirectoryIterator($wp_upload_images) as $fileInfo) {

        if($fileInfo->isDot()) continue;

        $image_base = $fileInfo->getFilename();
        $image_name = pathinfo($fileInfo, PATHINFO_FILENAME);

        //Customize this post data as you wish
        $my_post_data = array(
            'post_title' => $image_name,
            'post_type' => 'post',
            'post_category' => array('1'),
            'post_author'   => 1,
            'post_status' => 'publish'
        );

        // We need the ID for the attachment
        $post_id = wp_insert_post($my_post_data);

        $wp_filetype = wp_check_filetype($image_base, null );

         //Customize this attachment data as you wish
        $attachment = array(
             'guid' => $wp_upload_dir['url'] . '/' . $image_name, 
             'post_mime_type' => $wp_filetype['type'],
             'post_title' => 'child-' . $image_name,
             'post_content' => '',
             'post_status' => 'inherit'
        );

        $imagefile = $wp_upload_images . '/' . $image_base;
        $attach_id = wp_insert_attachment( $attachment, $imagefile, $post_id );
        $attach_data = wp_generate_attachment_metadata( $attach_id, $imagefile );

        wp_update_attachment_metadata( $attach_id, $attach_data );
    }   
}

Pour plus de quelques milliers d'images, vous aurez probablement plus de facilité avec:

réponse donnée Wyck 14.08.2013 - 07:24
1

Le "Dossier de nettoyage des téléchargements, structure de la base de données de la médiathèque" Question a quelques suggestions de plugins qui pourraient être liées - bien que ce ne soit pas exactement ce que vous demandez. Mais peut-être que les informations sont utiles.

    
réponse donnée hakre 14.09.2010 - 19:39

Lire d'autres questions sur les étiquettes