Back to Blog
tutorial
September 19, 2026
3 min read

How to Publish Obsidian Notes to WordPress

N
Nagaraj Dev
Plugin Developer & Creator

An Obsidian vault is the easiest source there is: it's already a folder of Markdown files, no export step. The two things that trip people up are Obsidian's own link syntax and where the attachments live. Sort those out and a vault goes into WordPress as clean, editable posts.

Obsidian vault (.md files + attachments)
  ↓  standard image links, not ![[wikilinks]]
DocxToPost (one note) or DocxToWP Pro (a folder)
  ↓
WordPress posts

Step 1: make image embeds standard Markdown

By default Obsidian writes an embedded image as ![[diagram.png]]. That is a wikilink, not Markdown, and no importer outside Obsidian reads it — it arrives as the literal text ![[diagram.png]].

In Settings → Files and links, turn off Use [[Wikilinks]]. From then on Obsidian writes embeds as ![](attachments/diagram.png), which is standard. Notes you wrote before the change still contain the old form; convert those before importing — a find-and-replace from ![[ / ]] to the standard form works for a handful, and for a large vault a link-conversion plugin from the community is the tool.

While you're in that screen, note Default location for new attachments. That is the folder you'll drop in alongside the notes in the bulk step.

Step 2: one note, free

For a single note the free DocxToPost plugin does the whole job.

  1. Plugins → Add New, search DocxToPost, install, activate (1.2.0 or later).
  2. DocxToPost → drop the .md on the upload area → Convert & Preview.
  3. The title is the note's first # Heading if it has one, otherwise the filename — which is exactly how Obsidian treats titles, so it usually comes out right. Front matter is removed.
  4. Set post type, status, categories, tags, author. Publish or save a draft.

The preview screen lists any relative images it could not resolve — from one file, it has nothing to resolve attachments/diagram.png against. Upload those to the Media Library and add them in the editor.

One note at a time, free

DocxToPost imports Obsidian notes as real blocks: headings, lists, tables, callouts as quotes, fenced code as Code blocks. No cap.

Get DocxToPost on WordPress.org

Step 3: a folder of notes, with attachments

DocxToWP Pro's Bulk Import takes the notes and their images together.

  1. DocxToWP → Bulk Import, start a job.
  2. Drop the .md files onto it — up to 100 per run.
  3. Drop the attachments onto the same job. Every ![](attachments/diagram.png) is matched to the uploaded diagram.png by filename and rewritten to its Media Library URL. The first image in a note becomes its featured image unless you choose another.
  4. Review the table: titles, featured images, which notes to include. Set post type, status, author, categories, tags, and a drip schedule if you don't want the whole vault going live in one minute.
  5. Run. Failures stay on their own rows and can be retried; one click undoes the entire run.

Publishing a whole folder?

Bulk import up to 100 notes per run with the attachments folder dropped in, so images land in the right posts. Review first, drip-publish, undo in one click.

See DocxToWP Pro

What comes through, and what needs a hand

In ObsidianIn WordPress
Headings, paragraphs, emphasis, inline codeAs written
Standard links [text](https://…)Links
Nested lists, tables, fenced codeList, Table and Code blocks
> quotesQuote blocks
![](attachments/x.png)Placed in the post (bulk); listed for you (single)
Front matterRemoved; a title: is used if present

Obsidian's own syntax needs attention:

[[Wikilinks]] to other notes arrive as the literal text in brackets. They point at notes in your vault, not at URLs, and an importer can't know a post's URL before the post exists. Replace them in the editor afterwards.

Callouts> [!note] Title — become ordinary blockquotes with [!note] Title as the first line. Tidy the marker off in the editor, or accept the quote.

Dataview, math, Mermaid, tasks. Dataview queries are plain text once outside Obsidian. Maths in $…$ is left as typed. A Mermaid fence becomes a Code block holding the source. - [ ] task lists arrive as list items starting with [ ].

Daily notes and folder structure. Folders don't become categories. Run each folder as its own bulk job with its own category, or set categories on the review screen.

Post, page, or something else?

Most vault content is dated or serial — posts. Reference notes you'd link from a menu — pages. If the site has a custom post type that fits (documentation, recipes, a knowledge base), bulk import offers every public post type.

The short version

Turn off wikilinks so images are standard ![](path). One note: free plugin. A folder: drop the notes and the attachments folder on Pro's Bulk Import together.


Coming from Joplin or Notion instead? Same idea, different export. The general Markdown guide covers everything else.

Related Articles

Import your first Word document in under 60 seconds

Start free. Import a Word document without copy-pasting or rebuilding its formatting. No account, no credit card. Straight from WordPress.org.

Get Pro for $39