Я использую imagemagick для обработки изображения с URL-адреса, сохраненного в настраиваемом поле WordPress.Сценарий фактически делает то, что должен, кроме одной вещи, он каждый раз обрабатывает дополнительное изображение.Код ниже ....
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<?php
$url1 = '/home/sites/public_html/mysite/wp-content/themes/mytheme/images/';
$imagefile = get_post_meta($post->ID, 'image_url', $single = true);
$file = basename($imagefile);
$location = '/usr/bin/convert';
$command = '-resize 560x';
$convert = $location . ' ' .$command . ' ' . $imagefile . ' ' . $url1 . $file;
exec ($convert);
?>
<?php endwhile; ?>
<?php endif; ?>
Дополнительное изображение, которое он создает, всегда повторяется и является первым сообщением в моем списке сообщений, я не уверен, связано ли это с первым сообщением или нет.
Я также не уверен, что именно imagemagick вызывает проблемы или wordpress, команды imagemagick, которые я использую, действительно просты, поэтому я склоняюсь к wordpress.
Может кто-нибудь что-нибудь посоветовать?
ОБНОВЛЕНИЕ
Я играл с этим и обнаружил, что эта проблема, кажется, возникает только с несколькими постами.Я проверил базу данных SQL и сравнил ее с базой данных, которая не затронута и не видит ничего очевидного.
ОБНОВЛЕНИЕ 2 Чтобы сделать вещи еще более странными, я продублировал эту настройку налокальный сервер разработчиков, я не в состоянии реплицировать его.Все отлично работает!Если я делаю то же самое на своем общем хосте, тогда проблема возвращается.Это заставляет меня думать, что где-то должен быть какой-то конфиг, вызывающий его.
На общем хосте, если я делаю следующий код, тогда он работает правильно ....
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<?php
$url1 = '/home/sites/public_html/mysite/wp-content/themes/mytheme/images/';
$imagefile = 'http://www.mydomain.com/images/myimage.jpg';
$file = basename($imagefile);
$location = '/usr/bin/convert';
$command = '-resize 560x';
$convert = $location . ' ' .$command . ' ' . $imagefile . ' ' . $url1 . $file;
exec ($convert);
?>
<?php endwhile; ?>
<?php endif; ?>
Но если явернуться к исходному коду, где URL-адрес изображения генерируется командой wordpress get_post_meta, затем я получаю дополнительное изображение.
ОБНОВЛЕНИЕ 3 Используя плагин wordpress BlackBox, я смогузнайте немного больше о том, что происходит, журналы дают мне эту информацию ..
0.2501 [ms] SELECT * FROM wp_users WHERE user_login = 'admin';
0.1330 [ms] SELECT user_id, meta_key, meta_value FROM wp_usermeta WHERE user_id IN (1);
0.0739 [ms] SELECT option_value FROM wp_options WHERE option_name = 'theme_switched' LIMIT 1;
0.1280 [ms] SELECT ID, post_name, post_parent FROM wp_posts WHERE post_name IN ('uncategorized','my-test-post-75') AND (post_type = 'page' OR post_type = 'attachment');
0.1481 [ms] SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name = 'my-test-post-75' AND wp_posts.post_type = 'post' ORDER BY wp_posts.post_date DESC ;
0.1359 [ms] SELECT t.*, tt.*, tr.object_id FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ('category', 'post_tag', 'post_format') AND tr.object_id IN (215) ORDER BY t.name ASC;
0.1402 [ms] SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (215);
0.1140 [ms] SELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy IN ('category') AND t.slug = 'uncategorized' ORDER BY t.name ASC ;
0.1018 [ms] SELECT tr.term_taxonomy_id FROM wp_term_relationships AS tr INNER JOIN wp_term_taxonomy AS tt ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tr.object_id IN (215) AND tt.taxonomy IN ('category') ORDER BY tr.term_taxonomy_id ASC;
0.1259 [ms] SELECT p.* FROM wp_posts AS p WHERE p.post_date < '2011-06-07 20:40:34' AND p.post_type = 'post' AND p.post_status = 'publish' ORDER BY p.post_date DESC LIMIT 1;
0.0758 [ms] SELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ('category') AND tr.object_id IN (204) ORDER BY t.name ASC;
0.0651 [ms] SELECT p.* FROM wp_posts AS p WHERE p.post_date > '2011-06-07 20:40:34' AND p.post_type = 'post' AND p.post_status = 'publish' ORDER BY p.post_date ASC LIMIT 1;
0.0849 [ms] SELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ('category') AND tr.object_id IN (251) ORDER BY t.name ASC;
Эта новая информация проливает свет на то, что может происходить?