Skip to content

Media and attachments

SVG uploads

Loveshack enables SVG uploads, which WordPress blocks by default. This is what makes custom logos and social icons practical without shipping a plugin.

SVG is executable markup

An SVG can carry scripts. Only allow uploads from authors you trust, and treat the capability the same way you would treat allowing raw HTML.

All four stream types support featured images. How they render in the stream is controlled per post type in the Customizer:

  • Whether the featured image is displayed at all
  • The stream image rendering mode
  • Card appearance around the image

See Stream layout.

Video posts

Video posts are for embedded or uploaded video as the primary content. Their text shows below the video: the Teaser Text on the stream card, cut to the configured length when it falls back to the body text, and the body text on the post page, with the Teaser Text standing in when there is no body text. The video_hide_text_default setting, off by default, makes new video posts hide their text so the video stands alone; the checkbox on each post overrides it.

Loveshack handles feed media so that video and image posts carry their media into RSS output rather than appearing as bare text.

File attachments

Posts can carry file attachments, stored in the post meta key:

_ls_file_attachment_ids

exposed in code as LOVESHACK_FILE_ATTACHMENTS_META_KEY. Use the constant rather than the literal string — see Constants.

Fonts and icons

The Inter font is loaded from Google Fonts when the Customizer body font setting is left at the theme default. It is not bundled in the theme package. Choosing a different font in the Customizer stops the external request.

Social icons ship as SVG files under assets/images/social/, sourced from Simple Icons, Open Web Icons, and Wikimedia. Full attribution and license terms are in the theme's readme.txt.