Установить главное изображение без публикации в теме

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

Я использую обходной путь. Я публикую изображение через whisper, а затем компонент «Предварительный просмотр списка тем» для его выбора.

Но, конечно, это решение не совсем то, что вы ищете. Хотя близко :joy:

Полагаю, что на данный момент скрытие изображения из поста — лучший доступный вариант

Это хороший способ, я его перенял. Но и потенциально опасный, потому что он может скрыть что угодно.

А как насчёт того, чтобы всегда именовать изображения определённым образом, например, начиная с «hidden-image-», и использовать CSS, чтобы скрывать все изображения, имена которых начинаются так?

Похоже, это возможно:

Что такое «шёпот» в данном контексте?

Можно ли изменить параметр “wrap” со значения “hidden” на что-то более кастомное, чтобы избежать любых рисков, о которых думает @Jagster?

См. Creating a whisper post

Я тоже думаю: если изображение скрыто, сможет ли Open Graph «увидеть» его и использовать?

Изображение просто скрыто от отображения. Оно всё ещё существует, просто не видно при просмотре темы.

Вы можете сделать CSS более специфичным, чтобы он скрывал не всё подряд, а, например, только изображения или даже только те, что указаны как миниатюры.

Мой пример:

Пост:

testing

[wrap=hidden-img]
![grün|500x500|thumbnail](upload://wDxG1UR10Uj4bCO9l3pUbJvBAW5.png)
[/wrap]

CSS:

div[data-wrap="hidden-img"] img[data-thumbnail="true"] {
  display: none;
}

Тогда вам нужно использовать обёртку, поместить в неё изображение и добавить |thumbnail, чтобы оно скрылось.

Без [data-thumbnail="true"] все изображения в обёртке были бы скрыты. Но это всё же меньше, чем «всё».

Угроза здесь, по крайней мере для меня, заключается в том, что кто-то скрывает что-то, что не нравится Googlebot. Это был бы простой способ саботировать SEO и т. д.

Вы также можете скрывать содержимое в постах с помощью других приемов

Например, <!--HTML-комментарии -->
Ниже приведен один такой пример:

Поэтому я не думаю, что синтаксис обертки является проблемой

Это конкретное действие предназначено только для моего использования в определённых категориях. Я не позволяю другим пользователям делать это.

Но это будет воспринято как комментарий, а не как изображение, верно? Когда речь заходит об Open Graph.

По сути, данные обёртки могут быть практически любыми, которые я захочу?
Кажется, это хороший вариант.

Что насчёт моего предложения называть изображения определённым образом?

Это позволило бы избежать лишних шагов, дополнительного кода и т. д.
Один единственный компонент с CSS и просто напоминание себе называть изображения определённым образом.


EDIT: неважно. Я заметил, что файлы переименовываются со случайными числами и буквами, так что этот способ не сработает.

Это был просто пример того, что скрытие элементов в сообщениях возможно. Злоумышленники также найдут другие способы добавления контента.

Это добавляет только то, что можно использовать в CSS для кастомизации. В моём примере добавляется hidden-img, и я могу использовать это для скрытия изображения.

Думаю, это может сработать. Когда у вас есть ![IWantToHideThis|500x500|thumbnail](upload://wDxG1UR10Uj4bCO9l3pUbJvBAW5.png), вы можете использовать что-то вроде

.cooked img[alt="IWantToHideThis"] {
  display: none;
}

Да, и что я имею в виду: hidden-img — это не какая-то «фиксированная» вещь? Если бы я хотел использовать abc-airplane, это тоже сработало бы, пока я использую то же самое в CSS?

Но в данном конкретном случае это не вариант, потому что Open Graph не увидит это как изображение, а воспримет как комментарий, верно?

Да, вы можете использовать любое ключевое слово, которое хотите.

Думаю, да, но я не уверен.

Я имел в виду своё решение: называть файлы определённым образом перед загрузкой, например:
hide-this-image-vacations-2025.jpg
и тогда CSS будет скрывать все изображения, начинающиеся с hide-this-image-. Но при загрузке изображения его имя не сохраняется как hide-this-image-vacations-2025.jpg. Оно преобразуется во что-то вроде wDxG1UR10Uj4bCO9l3pUbJvBAW5.png