Skip to content

Enabled content types

Settings → Markdown Alternate → General

Selects which content types expose a Markdown version. This is the master switch: with nothing ticked the plugin is inactive, and every other setting on the page is inert.

Default: nothing selected.

Every published post of that type, subject to the eligibility rules below, gains:

  • a .md URL, and content negotiation on its normal permalink;
  • an alternate link in the page head and in the HTTP response headers;
  • an entry in /llms.txt;
  • working output from the shortcodes and the GenerateBlocks dynamic tag.

All public content types registered on the site, custom post types included. Two exceptions:

  • Media (attachment) is never offered. Attachment pages have no editorial body worth a document representation.
  • Non-public types are not offered, and a saved type that later stops being public quietly stops being served — without being removed from your selection. If the plugin that registers it is deactivated for an afternoon, your choice is still there when it comes back.

A type registered by a plugin that is currently inactive is shown as not registered right now rather than dropped.

Enabling a type is necessary but not sufficient. A post is served only when all of the following hold:

RuleWhy
Status is publishDrafts, pending and private posts have no public representation.
No password setProtected content never has a Markdown version — not even for a visitor who has already entered the password. The rule is about the content, not the visitor.
Standard post formatAside, status, quote, link, image, video, audio, gallery and chat are skipped: short, often untitled snippets. The absence of a format — which is almost all content — is unaffected.
Not built with an unsupported page builderA post rendered by Elementor, Divi, WPBakery, Oxygen, Beaver Builder or Breakdance keeps its content outside the WordPress post content, so there is nothing to convert. Bricks is the exception: a Bricks-built post is rendered through Bricks’ own API and does get a .md. Decided post by post — see Page builders.

A post failing any of these returns 404 on its .md URL, is absent from /llms.txt, gets no alternate link, and makes the shortcodes render nothing at all — so nothing on your site ever links to a Markdown URL that does not exist.

Safe at any time. Unticking a type stops serving it immediately; its URLs return 404 and its entries leave /llms.txt. Saving the settings page invalidates the Markdown cache site-wide, so the change is visible at once.

The saved selection is passed through a filter, so a site can add types the panel will not offer — including non-public ones, which is treated as a deliberate request:

add_filter( 'sysmda_markdown_supported_post_types', function ( array $types ) {
$types[] = 'documentation';
return $types;
} );

To exclude individual posts rather than whole types, use sysmda_post_is_servable — see Extending the plugin with filters.