Я создаю бейсбольный сайт с несколькими авторами. Из прошлого опыта, независимо от того, насколько хорошо вы знаете кого-то лично, это не значит, что они будут следовать или даже читать ваши инструкции.
При этом я хотел бы потребовать, чтобы любое изображение, которое Автор решает «Использовать в качестве рекомендуемого изображения», имело ширину не менее 640 пикселей и высоту не менее 360 пикселей.
Я потребовал, чтобы в каждом сообщении было Лучшее изображение с помощью плагина WyPiekacz ; сообщение не будет опубликовано без избранного изображения. Я заблокировал для автора возможность создания горячей ссылки на другой сайт, удалив вкладку «С URL» в «Добавить медиафайл» с помощью кода Bainternet.
Теперь мне нужно, чтобы любое изображение, используемое в качестве рекомендуемого изображения, имело размер не менее 640 на 360 пикселей. Я вовсе не программист, но я играю и пытаюсь использовать код Маора Баразани в качестве отправной точки, но безрезультатно. Его код устанавливает минимальные размеры для любого загружаемого изображения .
источник
Ответы:
хорошо, если вы используете плагин WyPiekacz; как вы сказали для проверки того, что выбранное изображение загружено, вы можете немного его настроить, чтобы убедиться, что если есть выбранное изображение, оно имеет минимальные размеры, как вам требуется.
Вы можете изменить вышеуказанный код в wypiekacz.php на,
ну, я не понимаю, что вы имеете в виду под "Media Library Tab".
источник
list($url, $width, $height) = wp_get_attachment_image_src($post_id, 'full');
изменился наlist($url, $width, $height) = wp_get_attachment_image_src(get_post_thumbnail_id( $post->ID ), "Full"); echo $imgsrc[0];
чтобы проверить размеры только избранного изображения, а не всех прикрепленных изображений.Я проверил ядро и, видимо, там мало места для маневрирования.
/wp-admin/includes/media.php - это место, где создаются вкладки «Добавить медиа»
Функция get_media_item в строке 1034 - это та, которая визуализирует таблицу вложений / медиа. Я не вижу ни одного доступного фильтра в нем, ни предыдущих функций, которые его вызывают.
Некоторые ссылки и примеры кода вокруг проблемы.
Я предполагаю, что альтернативным решением было бы изменить название загруженных изображений и добавить его размеры. Я не уверен относительно изменения post_title загруженного файла, но переименование самого файла может быть достигнуто с помощью этих двух фильтров: sanitize_file_name и wp_handle_upload_prefilter
источник
Не полный ответ и не для награды, просто доказательство того, что основная концепция работает:
Просто 60secondsSnippet и имеет одну большую проблему: это будет срабатывать при каждой загрузке, и не только, если кто-то собирается добавить избранное изображение, потому что у нас нет способа получить контекст загрузчика изображения. Есть несколько способов обойти это, в основном с некоторыми манипуляциями с JS.
Я должен работать прямо сейчас, и у меня нет времени экспериментировать с этим. Но я хотел помочь как можно больше, и, возможно, это отправная точка для других.
ура
источник
Это не самый элегантный ответ ... но он работает! Плагин WyPiekacz, хотя и крутой, не обновлялся в течение трех лет.
Наиболее элегантное решение с лучшим пользовательским интерфейсом будет использовать JavaScript, чтобы справиться с этим как для быстрого редактирования, так и для страницы редактирования. Тогда, к счастью, я добавлю что-то в
update_post_metadata
фильтр (который полностью предотвращает показ изображения, но не выдает предупреждение, так как он запускается с AJAX).Уведомления администратора не будут отображаться, потому что WordPress перенаправляет, и даже в этом случае не будет отображаться при быстром редактировании (мой метод отображает предупреждение при быстром редактировании, хотя оно не имеет стиля).
источник
Вот один из способов убедиться, что миниатюра правильного размера перед отображением.
Сначала создайте эту вспомогательную функцию:
Затем вы можете проверить перед отображением миниатюры сообщения:
источник
Это будет делать то, что нужно :)
Он использует get_the_post_thumbnail, который также может помочь вам, поэтому вам не нужно создавать кучу кода Fn, который WordPress уже может обработать для вас, просто мысль.
Используется
$thumbnails = get_posts(array('numberposts'=>1,'orderby'=>'rand','meta_key' => '_thumbnail_id'));
для получения случайного, если его нет, это может помочь вам двигаться вперед.Этот бит
echo get_the_post_thumbnail($thumbnail->ID, 'small-thumb', array( 'alt' => esc_attr( $post->post_title ), 'title' => esc_attr( $post->post_title ) ));
замечает, что'small-thumb'
он соответствует тем add_image_size fn, которые мы собрали в несколько строк. Так что, если бы вы имели,add_image_size( 'small-square', 100, 100, true );
вы могли бы позвонить в качестве'small-square'
альтернативы.ура
источник