Кто-нибудь использовал Smart Image Resizer на поддоменах? - PullRequest
0 голосов
/ 21 сентября 2010

Я использую Smart Image Resizer для отображения изображений.Это прекрасно работает на одном сайте WP.Но он не работает для WPMU.

Кто-нибудь использовал Smart Image Resizer в WPMU с использованием поддоменов?

1 Ответ

0 голосов
/ 22 сентября 2010

Хорошо, я исправил это, взломав файл image.php.

Проблема заключалась в том, что Smart Image Resizer использует DOCUMENT_ROOT для определения папки базовой загрузки.Он не включает папки загрузки WordPress (как для WP, так и для WPMU).Поэтому я добавил / изменил некоторый код в файле image.php, чтобы исправить это.

// Let's include Wordpress libraries
// We assume this file WILL be located in root folder
require_once($_SERVER['DOCUMENT_ROOT'].'/wp-blog-header.php');

// This must be included just after the above include. Otherwise we can get a 404 Not Found error in WPMU 
header('HTTP/1.1 200 OK');    // ****** Wordpress hack ********

//Define upload dir for Wordpress
$upload_dir = wp_upload_dir();
define('WP_IMAGE_UPLOAD_DIR', str_replace("\\","/",$upload_dir['basedir']));
define('WP_IMAGE_UPLOAD_URL', str_replace("\\","/",$upload_dir['baseurl']));

// Replace the original code to remove base URL (and upload path)
$image = str_replace(WP_IMAGE_UPLOAD_URL,'',$_GET['image']);

// Then I replace the old docRoot with the new upload path,
// and kept the stripping of possible trailing slash off the document root
$docRoot    = preg_replace('/\/$/', '', WP_IMAGE_UPLOAD_DIR);

// Then I change the code so it uses correct upload path.
if (!file_exists(WP_IMAGE_UPLOAD_DIR . $image))
{
    header('HTTP/1.1 404 Not Found');
    echo 'Error: image does not exist: ' . WP_IMAGE_UPLOAD_DIR . $image;
    exit();
}

Теперь он работает как для WP, так и для WPMU.

...