web-dev-qa-db-fra.com

Aperçu du chemin de l'image dans la section Admin

J'ai donc rencontré un petit problème. J'ai un chemin personnalisé pour les téléchargements et cela fonctionne. les fichiers sont sauvegardés au bon endroit, etc. Le problème que j'ai est la "boîte de widgets" dans la section admin. Immédiatement après le téléchargement et la définition de l'image téléchargée en tant qu'image sélectionnée, elle apparaît dans l'aperçu au lieu de www.blog.com/blog/uploads/POST_ID/image_name.png elle s'affiche.

www.blog.com/blog/uploads/image_name.png Le chemin est cassé. Encore une fois, je suis nouveau sur WP ... existe-t-il un filtre pour la boîte de widgets de l'administrateur?

Le chemin que je récupère est: <img width="266" height="145" src="http://mysite.com/blog/wp-content/uploads/image-350x192.png" class="attachment-266x266" alt="the title" title="the title">

Mais où réside l'image est: <img width="266" height="145" src="http://mysite.com/blog/wp-content/uploads/<POST_ID>/image-350x192.png" class="attachment-266x266" alt="the title" title="the title">

Je ne peux pas ajouter d'image à cause de mon représentant jusqu'à présent ... elle apparaît dans la même colonne que tags et categories dans la zone d'administration. C'est une coutume widget pour ce thème.

mettre à jour

    function media_upload_dir($upload) {
        if(!isset($_REQUEST['post_id']))
        return $upload;
$id = $_REQUEST['post_id'];
        if (isset($_REQUEST['post_id'])) {
            $upload['path']    = "/path/www/blog/wp-content/uploads/" . $id;
            $upload['url']     = "http://site.com/blog/wp-content/uploads/" . $id;
            $upload['basedir'] = "/path/www/blog/wp-content/uploads/" . $id;
            $upload['baseurl'] = "http://site.com/blog/wp-content/uploads/" . $id;
            if (!file_exists("/path/www/blog/wp-content/uploads/" . $id)) {
                mkdir("/path/www/blog/wp-content/uploads/" . $id, 0777);
            }
        }
        return $upload;
    }
    add_filter('upload_dir', 'media_upload_dir');

cheers.bo

3
roberthuttinger

Ce n'est pas une réponse, c'est un commentaire étendu avec le lien à la solution .

Tout d’abord, lors des tests, l’un de mes sites de test n’affichait pas l’image sélectionnée téléchargée dans le dossier /wp-content/uploads/POST_ID/image_name.jpg. Même problème que l'OP.

Mais , il n'affichait aucun chemin vers l'image. Et le bogue était que l'installation où je testais est pleine de hacks (ma principale base de tests WPSE). Dès que je suis allé à une installation stable, tout a fonctionné.

Donc, si votre problème persiste, effectuez un dépannage complet:
http://wordpress.org/support/topic/troubleshooting-wordpress-33-master-list

En outre, Robert, lorsque vous posez une question, veuillez fournir tous les éléments qu’une personne disposée à aider devra comprendre et y répondre efficacement.

Notes annexes à votre code:

  • mkdir n'est pas nécessaire, WordPress s'en charge
  • ne codez pas en dur le chemin ou l'URL de wp-content, vous pouvez utiliser les constantes WP_CONTENT_DIR et WP_CONTENT_URL

Meilleures salutations et bonne chance!

2
brasofilo