rickcurran
  • 0
Учитель

Изображение по-прежнему привязано к странице, хотя оно было удалено

  • 0

Я работаю над функцией галереи изображений, где я беру изображения, прикрепленные к страницам, и отображаю их в разных местах с помощью этой get_posts() функции. Однако я обнаружил, что когда я удаляю изображения со страницы, на которой они были размещены, они по-прежнему кажутся вложениями. Мне просто интересно, есть ли что-то, что я неправильно понимаю о вложениях, или это ошибочное поведение?

Возможно, стоит добавить, что я получаю изображения в виде вложений страниц, потому что мне нужно иметь возможность классифицировать изображения и отображать их по категориям в разных местах сайта. Если бы я мог напрямую классифицировать изображения, я понимаю, что мне не нужно было бы беспокоиться об этой проблеме, с которой я сталкиваюсь!

Share
  1. Пример вашего вызова get_posts() был бы ДЕЙСТВИТЕЛЬНО полезен здесь

    • 0
    • Я не включил пример вызова get_posts(), так как проблема, которую я, кажется, вижу, больше связана с обработкой WordPress присоединения/удаления изображений в виде вложений. Дело не столько в неправильном поведении get_posts(), сколько в обработке изображений внутри Admin.

      • 0
    • Как вы «удаляете изображения со страницы, на которой они были размещены?» Если вы просто удаляете изображение из содержимого поста/страницы, это не удалит его.

      • 0
    • @EAMann: Означает ли это, что нет возможности удалить изображение как вложение на странице после того, как оно было вставлено и удалено? Кажется странным поведением, если это так. Я знаю, что могу отредактировать базу данных, чтобы удалить ссылку на post_parent, но это явно бесполезно для конечных пользователей.

      • 0
    • Есть средство для удаления изображения… см. мой полный ответ ниже…

      • 0
    • @EAMann: Спасибо за это объяснение. Однако может показаться, что невозможно удалить изображение со страницы и удалить его как вложение, если вы действительно не удалите это изображение? Я искал способ хранить изображения в медиатеке WordPress и иметь возможность добавлять/удалять их в качестве вложений на страницы.

      • 0
    • @Rick: Если бы она была доступна, помогла бы в вашем случае функция «переместить изображение»? То есть, если бы вы могли иметь удерживающую страницу/публикацию для всех изображений, которые вы хотите иметь, но не быть связанными с «настоящей» страницей/публикацией.

      • 0
    • @EAMann: Интересно, знаете ли вы, что произойдет, если вы вручную установите для post_parent значение 0 (или NULL, или что-то в этом роде)?

      • 0
    • @Bobby: может помочь функция «переместить изображение», хотя я думаю, что потенциально функция «удалить изображение» была бы более полезной!

      • 0
    • @Bobby: установка post_parent на 0 удаляет вложение со страницы, основная проблема заключается в том, что единственный способ, которым WP обычно делает это, — это удаление изображения из медиатеки.

      • 0
    • Спасибо за это. Я вижу, что это позволяет использовать простое текстовое поле для ввода категорий на изображениях, надеюсь, я смогу использовать это и заставить его делать то, что я хочу. Плагин File Gallery выглядит хорошо, но, как вы говорите, делает гораздо больше, чем мне действительно интересно. Но если я не могу получить то, что хочу, это может быть хорошим запасным решением.

      • 0
    • Еще раз спасибо за упоминание register_taxonomy_for_object_type(), я вижу, как он может делать то, что мне нужно, но я все еще сталкиваюсь с парой проблем. Я собираюсь опубликовать новый вопрос вместо того, чтобы разбавлять этот.

      • 0
    • Сначала я подумал, что вы, возможно, правы, но я вижу в списке изображений в библиотеке мультимедиа, что изображение отображается как прикрепленное к странице, хотя я удалил его с этой страницы. Это показалось бы мне глючным.

      • 0
    • Хммм… Интересно, зависит ли это от того, как вы удалили это со страницы. Вы видите значение post_parent для этого вложения в базе данных?

      • 0
    • Я удалил изображение со страницы, просто наведя курсор на изображение и щелкнув значок удаления. Я вижу, что post_parent по-прежнему установлен на идентификатор страницы, с которой я только что удалил его. Я не понимаю, как это не ошибка, я бы подумал, что желаемое поведение будет заключаться в том, что идентификатор parent_page должен сбрасываться для изображения при удалении изображения или сохранении страницы.

      • 0
    • Это не баг… это важная фича. Поле post_parent по-прежнему установлено, потому что изображение по-прежнему прикреплено к галерее сообщения, даже если оно не используется в содержании сообщения. Некоторые сайты (например, мои) используют эту функцию для добавления изображений на страницу архива сообщений, фактически не встраивая изображения в содержимое сообщения… См. мой полный ответ для получения инструкций о том, как полностью удалить изображение.

      • 0
    • @EAMann: Спасибо, я вижу логику / ценность в том, как это работает, но поскольку нет возможности удалить изображение как вложение, не удаляя его, мне это кажется ошибочным.

      • 0
  2. Удаление изображения из поста или страницы — запутанный процесс. Когда вы загружаете изображение в сообщение/страницу, оно добавляется в галерею этого сообщения/страницы. Затем вы можете вставить изображение в содержимое поста/страницы и отредактировать контент по своему усмотрению. Когда вы нажимаете на изображение в wysiwyg-редакторе, вы увидите два значка — один для редактирования настроек изображения и один для его удаления из редактора — этот второй значок не удаляет изображение, хотя он выглядит как типичный «удалить». » значок.

    Когда вы нажимаете эту кнопку «удалить», она удаляет изображение из визуального редактора , но сохраняет его в галерее поста/страницы.

    Чтобы действительно удалить/удалить изображение, вам нужно сделать следующее

    • Нажмите кнопку «Добавить изображение», чтобы просмотреть экран изображения.
    • Перейдите на вкладку «Галерея», чтобы просмотреть, какие изображения в данный момент прикреплены к сообщению.
    • Нажмите ссылку «Показать» для изображения, которое вы хотите удалить.
    • Нажмите «Удалить» в нижней части экрана сведений об изображении.

    Вам будет предложено подтвердить удаление, затем изображение будет отсоединено от записи/страницы и полностью удалено из WordPress.

    • 0
  3. Я никогда не играл с этим, но вы можете прикреплять таксономии к вложениям (встроенным или пользовательским) следующим образом:

    register_taxonomy_for_object_type( 'category', 'attachment' );
    

    Подключите это, 'init' чтобы иметь возможность классифицировать вложения в соответствии с категорией.

    Я не знаю, как вы «удаляете» изображение, но если вы удаляете его из WordPress, оно больше не должно быть прикреплено к этой странице. Другой способ отключить изображение как вложение — войти в базу данных и удалить идентификатор страницы из 'post_parent' столбца вложения.

    Вы также можете заглянуть в плагин File Gallery. Он делает намного больше, чем вам может быть интересно, но позволяет отсоединять изображения от постов.

    • 0
  4. Просто смутное предположение, но может быть вы получаете вложения со всех ревизий/статусов страниц? Если вы ограничите get_posts() вызов только опубликованными сообщениями/страницами, вы можете увидеть, что рассматриваемое изображение исчезнет.

    • 0

Оставить ответ

You must login to add an answer.