I didn’t speak about the release of WordPress 2.7.1, because a lot of blogs already published the announce. This version adds a bug: all the attachments stored elsewhere the directory displayed in the menu Options/Misc cannot be displayed or reached.
In this blog, all galeries don’t work properly, and all images that are not displayed in their original size.
Waiting the version 2.7.2, you can solve this bug, by modifying the file wp-includes/post.php. You have to comment the lines that was added between the 2.7.0 and the 2.7.1 version (line 2533 of the file):
function wp_get_attachment_url( $post_id = 0 ) { $post_id = (int) $post_id; if ( !$post =& get_post( $post_id ) ) return false; $url = ''; if ( $file = get_post_meta( $post->ID, '_wp_attached_file', true) ) { //Get attached file if ( ($uploads = wp_upload_dir()) && false === $uploads['error'] ) { //Get upload directory if ( 0 === strpos($file, $uploads['basedir']) ) //Check that the upload base exists in the file location $url = str_replace($uploads['basedir'], $uploads['baseurl'], $file); //replace file location with url location // elseif ( false !== strpos($file, 'wp-content/uploads') ) // $url = $uploads['baseurl'] . substr( $file, strpos($file, 'wp-content/uploads') + 18 ); // else // $url = $uploads['baseurl'] . "/$file"; //Its a newly uploaded file, therefor $file is relative to the basedir. } } if ( empty($url) ) //If any of the above options failed, Fallback on the GUID as used pre-2.7, not recomended to rely upon this. $url = get_the_guid( $post->ID ); if ( 'attachment' != $post->post_type || empty($url) ) return false; return apply_filters( 'wp_get_attachment_url', $url, $post->ID ); }
With this modification, images are displayed again.
Make a backup of the file
post.phpbefore any modification. With this backup, you will be able to rollback, if you encountered another problems.
Comments & trackbacks
Comments
5 responses
Trackback / Pingback
2 trackbacks/pingbacks.
-
[...] по разным запросам вывел меня таки на этот блог, где предлагалось закомментировать 4 строчки в одном [...]
-
[...] I tried to find a solution to the WordPress 2.7.1 gallery code problem. I checked some templates first but I was not able to identify the right one. So I searched the web and I found the solution from this blog entry, Problem with WordPress 2.7.1 and images. [...]
Français
Cailleteau
12:31
Merci pour cet article qui répond exactement à mon problème. Cependant le bout de code provoque un message d’erreur dans wordpress. Avec la version originale du fichier ”post.php” ca ne marche pas, mais avec celle ci ca fait une erreur !
Que faire ?
Je continue a chercher de mon coté.
Emmanuel
14:38
Curieux. J’ai simplement fait un copier/coller de mon propre fichier
post.php.Il faut veiller a ne commenter que les 4 lignes, et notamment de ne pas commenter l’accolade fermante.
A noter qu’il faudra renouveller l’operation lors de la mise a jour en 2.8.0
Cailleteau
15:04
Effectivement, je n’ai plus de message d’erreur, mais l’Upload de fichier ne marche pas pour autant.
Je n’ai rien dans mon repertoire wp-content/uploads, le module ne parvient pas à uploader les fichiers :/
Je ne comprends pas ce qui se passe, je suis bien en CHMOD 777 sur un serveur OVH.
Quand je fais les test en local avec un EasyPHP, ca marche très bien, mais rien ne se passe en ligne.
Emmanuel
20:37
Le mieux est de prendre les choses dans l’ordre:
1. Remettre le fichier post.php d’origine (télécharger le fichier ZIP de WordPress 2.7.1, et extraire le fichier post.php)
2. Fixer les options adéquates dans Réglages / divers. Normalement, il n’y a que le premier champ a remplir. Le chemin indiqué ne doit pas se terminer par un /
3. Si tout fonctionne correctement, alors tu corriges a nouveau le fichier post.php, et tu fais le test
Le “disfonctionnement” du fichier post.php n’intervient que si tu stockes tes images a des endroits differents. Par exemple, dans mon cas, je stocke les galeries dans un repertoire
gallery, et le reste des images dans le repertoireimages. Si tu stockes tout au meme endroit, la modification est inutile. Si tu as tres peu d’images stockees ailleurs que dans wp-content/upload, le mieux est peut etre de “deplacer” ces images, en les “re-uploadant” au bon endroit.J’espere que ces quelques pistes t’aideront.
Cailleteau
09:20
Merci beaucoup de ton aide.
N’étant pas un spécialiste PHP, c’est un développeur que je connais qui a résolu le problème. Il semble que tu m’aies donné une piste cohérente puisqu’il suffisait de renseigner le répertoire de stockage.
See you soon.