{"id":303019,"date":"2026-06-11T00:04:23","date_gmt":"2026-06-11T00:04:23","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/docxtowp-docx-to-wp-post-page-custom-post-type-converter\/"},"modified":"2026-08-24T17:47:05","modified_gmt":"2026-08-24T17:47:05","slug":"docxtowp","status":"publish","type":"plugin","link":"https:\/\/el.wordpress.org\/plugins\/docxtowp\/","author":20130788,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.1","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"DocxToPost \u2013 Convert DOCX Files to WP Posts, Pages & Custom Post Types","header_author":"Nagaraj","header_description":"Convert .docx files into WordPress posts with preserved formatting. Upload, preview, and publish \u2014 no copy-paste needed.","assets_banners_color":"626a85","last_updated":"2026-08-24 17:47:05","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/docxtowp.com","header_author_uri":"https:\/\/twitter.com\/Nagaraj_Dev143","rating":5,"author_block_rating":0,"active_installs":80,"downloads":504,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"nagarajdev","date":"2026-06-11 00:04:09"},"1.1.0":{"tag":"1.1.0","author":"nagarajdev","date":"2026-08-24 17:47:05"}},"upgrade_notice":{"1.1.0":"<p>Imports now produce real editor blocks instead of one Classic block, and numbered lists, nested bullets and table headers all import correctly. Recommended for everyone.<\/p>","1.0.1":"<p>Fixes numbered lists, nested bullets and table headers importing incorrectly, repairs three broken admin links, and tightens permission checks. Recommended for everyone.<\/p>","1.0.0":"<p>Initial release \u2014 enjoy clean DOCX to WordPress conversion!<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3568179,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3568179,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3664065,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3664065,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3664065,"resolution":"1","location":"assets","locale":"","width":1700,"height":792},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3664065,"resolution":"2","location":"assets","locale":"","width":1698,"height":1371},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3664065,"resolution":"3","location":"assets","locale":"","width":1708,"height":829},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3664065,"resolution":"4","location":"assets","locale":"","width":1714,"height":874}},"screenshots":{"1":"Upload screen \u2014 drag and drop your .docx file and an optional featured image","2":"Preview and publish \u2014 the parsed document with post type, status, author, featured image, categories and tags","3":"Confirmation after the post is created","4":"Settings \u2014 file size limit, post defaults and which roles may use the plugin"}},"plugin_section":[],"plugin_tags":[5520,8470,6587,6606,6585],"plugin_category":[59],"plugin_contributors":[266594],"plugin_business_model":[],"class_list":["post-303019","plugin","type-plugin","status-publish","hentry","plugin_tags-converter","plugin_tags-document","plugin_tags-docx","plugin_tags-importer","plugin_tags-word","plugin_category-utilities-and-tools","plugin_contributors-nagarajdev","plugin_committers-nagarajdev"],"banners":{"banner":"https:\/\/ps.w.org\/docxtowp\/assets\/banner-772x250.jpg?rev=3664065","banner_2x":"https:\/\/ps.w.org\/docxtowp\/assets\/banner-1544x500.jpg?rev=3664065","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/docxtowp\/assets\/icon-128x128.png?rev=3568179","icon_2x":"https:\/\/ps.w.org\/docxtowp\/assets\/icon-256x256.png?rev=3568179","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/docxtowp\/assets\/screenshot-1.png?rev=3664065","caption":"Upload screen \u2014 drag and drop your .docx file and an optional featured image"},{"src":"https:\/\/ps.w.org\/docxtowp\/assets\/screenshot-2.png?rev=3664065","caption":"Preview and publish \u2014 the parsed document with post type, status, author, featured image, categories and tags"},{"src":"https:\/\/ps.w.org\/docxtowp\/assets\/screenshot-3.png?rev=3664065","caption":"Confirmation after the post is created"},{"src":"https:\/\/ps.w.org\/docxtowp\/assets\/screenshot-4.png?rev=3664065","caption":"Settings \u2014 file size limit, post defaults and which roles may use the plugin"}],"raw_content":"<!--section=description-->\n<p><strong>DocxToPost<\/strong> is the easiest way to turn Microsoft Word documents into clean WordPress posts, pages, or custom post types.<\/p>\n\n<p>No more copy-pasting from Word and losing your formatting. Upload your .docx file and DocxToPost parses it into clean, semantic HTML that WordPress understands \u2014 including every embedded image, which is uploaded to your Media Library automatically.<\/p>\n\n<p><strong>Everything in the free version:<\/strong><\/p>\n\n<ul>\n<li><strong>Real blocks, not one big lump:<\/strong> Your document arrives as proper paragraph, heading, list, image, table and quote blocks you can move and edit individually \u2014 not a single Classic block you have to fight. Running the classic editor instead? It detects that and gives you plain HTML.<\/li>\n<li><strong>Undo an import:<\/strong> Changed your mind? One link on the confirmation screen moves the post to the trash.<\/li>\n<li><strong>Simple upload:<\/strong> Drag and drop your .docx file.<\/li>\n<li><strong>Formatting preserved:<\/strong> Headings, paragraphs, bold, italic, underline, strikethrough, superscript, subscript, blockquotes and paragraph alignment all survive the trip.<\/li>\n<li><strong>Real lists:<\/strong> Bulleted and numbered lists come through as proper lists, nested sub-bullets included.<\/li>\n<li><strong>Tables with headers:<\/strong> Header rows become real table headers, so your tables stay readable and accessible.<\/li>\n<li><strong>Embedded image extraction:<\/strong> Images inside your Word document are pulled out and added to the Media Library, with the alt text you set in Word.<\/li>\n<li><strong>All public post types:<\/strong> Publish to Posts, Pages, or any Custom Post Type registered on your site.<\/li>\n<li><strong>Full status options:<\/strong> Publish immediately, save as Draft, submit for Pending Review, or mark Private.<\/li>\n<li><strong>Live preview:<\/strong> See exactly how the post will look before you publish.<\/li>\n<li><strong>Featured images:<\/strong> Upload a featured image alongside your document.<\/li>\n<li><strong>Categories and tags:<\/strong> Assign both while you import.<\/li>\n<li><strong>Post meta:<\/strong> Edit the slug, excerpt and author.<\/li>\n<li><strong>Role-based access:<\/strong> Choose which user roles can use the plugin.<\/li>\n<\/ul>\n\n<h4>Why upgrade to Pro?<\/h4>\n\n<p>The free version is a complete, unrestricted DOCX importer for one document at a time. Pro is for people importing many documents, and it does three things free does not:<\/p>\n\n<ul>\n<li><strong>Bulk import<\/strong> \u2014 drag in up to 100 .docx files at once. The queue survives a closed tab, isolates a broken document to its own row, and lets you pause, resume or retry just the failures.<\/li>\n<li><strong>Drip publishing<\/strong> \u2014 schedule a whole batch instead of publishing it at once. \"One post per weekday from Monday at 09:00\" is two clicks, and weekends are excluded by default.<\/li>\n<li><strong>SEO automation<\/strong> \u2014 SEO title, meta description and focus keyphrase for Yoast SEO and Rank Math, filled from templates using <code>{title}<\/code>, <code>{sitename}<\/code>, <code>{excerpt}<\/code>, <code>{filename}<\/code>, <code>{category}<\/code> and <code>{date}<\/code>, with per-document overrides.<\/li>\n<\/ul>\n\n<p>Pro also adds one-click rollback of an entire import, import history, duplicate handling (skip, import anyway, or update the existing post), a featured-image cascade that matches companion image files to their documents by filename, an activity log, and automatic updates.<\/p>\n\n<p>Learn more at <a href=\"https:\/\/docxtowp.com\">docxtowp.com<\/a><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install through the WordPress plugins screen, or upload the plugin files to <code>\/wp-content\/plugins\/docxtowp<\/code>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Go to <strong>DocxToPost<\/strong> in the admin menu and upload your first .docx file.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20post%20types%20does%20this%20plugin%20support%3F\"><h3>What post types does this plugin support?<\/h3><\/dt>\n<dd><p>All registered public post types on your site \u2014 Posts, Pages, and any Custom Post Type. You can only create the types your user role already allows.<\/p><\/dd>\n<dt id=\"does%20it%20preserve%20formatting%20from%20word%3F\"><h3>Does it preserve formatting from Word?<\/h3><\/dt>\n<dd><p>Yes. Headings, paragraphs, bold, italic, underline, strikethrough, superscript, subscript, bulleted and numbered lists (including nested levels), tables with header rows, blockquotes, paragraph alignment, and hyperlinks all carry over.<\/p><\/dd>\n<dt id=\"i%20imported%20the%20wrong%20document.%20can%20i%20undo%20it%3F\"><h3>I imported the wrong document. Can I undo it?<\/h3><\/dt>\n<dd><p>Yes. The confirmation screen has a \"Move it to the trash\" link, and the post stays recoverable from the Trash afterwards.<\/p><\/dd>\n<dt id=\"why%20will%20my%20file%20not%20upload%3F\"><h3>Why will my file not upload?<\/h3><\/dt>\n<dd><p>Go to Tools \u2192 Site Health \u2192 Status. DocxToPost adds a check there that reports the three usual causes: a missing PHP extension, an upload directory that is not writable, or a file size limit set higher than the server will actually accept.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20images%20inside%20my%20word%20document%3F\"><h3>What happens to images inside my Word document?<\/h3><\/dt>\n<dd><p>They are extracted, uploaded to the Media Library, and placed inline in the post. If you set alt text on an image in Word, that alt text comes with it.<\/p><\/dd>\n<dt id=\"what%20status%20options%20are%20available%3F\"><h3>What status options are available?<\/h3><\/dt>\n<dd><p>Publish, Draft, Pending Review, and Private. If your role cannot publish, the post is saved for review instead of being discarded.<\/p><\/dd>\n<dt id=\"is%20there%20an%20upload%20limit%3F\"><h3>Is there an upload limit?<\/h3><\/dt>\n<dd><p>There is no limit on how many documents you can convert. A per-file size limit (10MB by default) can be changed under Settings, up to whatever your server's PHP configuration allows.<\/p><\/dd>\n<dt id=\"do%20i%20need%20the%20block%20editor%3F\"><h3>Do I need the block editor?<\/h3><\/dt>\n<dd><p>No. By default the plugin looks at which editor your post type actually uses and matches it \u2014 block markup for the block editor, plain HTML for the classic editor. You can override that under Settings \u2192 Content Format if you would rather always get one or the other.<\/p><\/dd>\n<dt id=\"will%20my%20imported%20post%20be%20one%20big%20classic%20block%3F\"><h3>Will my imported post be one big Classic block?<\/h3><\/dt>\n<dd><p>Not any more. Each paragraph, heading, list, image, table and quote becomes its own block, so you can drag, duplicate and edit them the same as anything you wrote in the editor. Anything with no block equivalent is kept intact in an HTML block rather than being dropped.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20my%20documents%20anywhere%3F\"><h3>Does the plugin send my documents anywhere?<\/h3><\/dt>\n<dd><p>No. Everything is parsed on your own server, and the plugin makes no outbound requests.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added: <strong>block editor output.<\/strong> Imported documents now become real paragraph, heading, list, image, table and quote blocks instead of one Classic block containing the whole document. Anything without a block equivalent is preserved in an HTML block.<\/li>\n<li>Added: Settings \u2192 Content Format, with \"Match the editor\" (the default, which follows whichever editor the post type uses), \"Always block editor\" and \"Always classic HTML\".<\/li>\n<li>Added: <strong>blockquotes<\/strong> \u2014 Word's Quote and Intense Quote styles now become real blockquotes instead of plain paragraphs.<\/li>\n<li>Added: <strong>paragraph alignment<\/strong> \u2014 centred, right-aligned and justified paragraphs and headings keep their alignment.<\/li>\n<li>Added: <strong>undo an import<\/strong> \u2014 a \"Move to trash\" action on the confirmation screen, for when a document was not what you expected.<\/li>\n<li>Fixed: the confirmation screen said \"Published successfully!\" whatever had happened, including directly above a \"Draft\" badge. It now reports what actually happened \u2014 published, saved as a draft, submitted for review, scheduled or published privately.<\/li>\n<li>Fixed: a draft had no way to see the result. The confirmation screen now offers a Preview link when the post is not published.<\/li>\n<li>Added: <strong>duplicate warning<\/strong> \u2014 the preview screen tells you when a post with the same title already exists, and links to it. Advisory only; it never blocks.<\/li>\n<li>Added: <strong>Site Health check<\/strong> \u2014 Tools \u2192 Site Health now reports whether the required PHP extensions are present, whether the upload directory is writable, and whether your file size limit exceeds what the server will actually accept.<\/li>\n<li>Added: an Upgrade page describing what the Pro version does, and a Bulk Import (Pro) page describing that feature specifically. Both are descriptions \u2014 no locked or disabled functionality ships in the free plugin.<\/li>\n<li>Added: occasional dismissible notices on the plugin's own screens once you have converted a few documents. Each appears once, is dismissible, and stays dismissed.<\/li>\n<li>Note: this affects new imports only. Posts you have already created are ordinary WordPress posts and are not touched.<\/li>\n<\/ul>\n\n<p><strong>Privacy:<\/strong> the plugin counts how many documents you have converted, stored against your user account on your own site. It is used only to decide when to show the notices above. Nothing is sent anywhere \u2014 the plugin still makes no outbound requests.<\/p>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fixed: three buttons in the admin \u2014 including \"Upload Another\" on the success screen \u2014 linked to a page that was never registered and returned a permissions error.<\/li>\n<li>Fixed: numbered lists were imported as bulleted lists. Word gives both the same paragraph style, so the list format is now read from the document's numbering definitions.<\/li>\n<li>Fixed: nested sub-bullets were flattened into a single level. List nesting is now preserved to any depth.<\/li>\n<li>Fixed: table header rows were imported as ordinary cells. They now become real <code>&lt;thead&gt;<\/code> and <code>&lt;th&gt;<\/code> elements.<\/li>\n<li>Fixed: a slightly corrupt .docx failed on the code path meant to recover it, because of a PHP constant that does not exist.<\/li>\n<li>Fixed: images lost their sizing, so wide images could overflow their container.<\/li>\n<li>Fixed: comments were forced on for every imported post, overriding the site's own default.<\/li>\n<li>Fixed: error messages returned the server's file paths to the browser. They now go to the error log.<\/li>\n<li>Added: strikethrough, superscript and subscript are now preserved.<\/li>\n<li>Added: alt text set on an image in Word is now saved to the Media Library attachment, not just the post content.<\/li>\n<li>Added: a dismissible card describing the Pro version, on the plugin's own screens only.<\/li>\n<li>Security: creating a post now checks that your role is allowed that post type, that you may publish rather than only draft, and that you may attribute a post to another user.<\/li>\n<li>Performance: the cleanup task is scheduled on activation instead of being checked on every page load.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release<\/li>\n<li>Support for .docx to Post, Page, and Custom Post Type conversion<\/li>\n<li>Formatting preservation and live preview<\/li>\n<li>Embedded image extraction and auto-upload to Media Library<\/li>\n<li>Featured image support<\/li>\n<li>Categories, tags, and author support<\/li>\n<li>Publish, Draft, Pending, and Private status options<\/li>\n<li>Role-based access control<\/li>\n<\/ul>","raw_excerpt":"Import .docx files as WordPress Posts, Pages, or Custom Post Types in seconds. No copy-paste. No block editor fighting.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/303019","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=303019"}],"author":[{"embeddable":true,"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/nagarajdev"}],"wp:attachment":[{"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=303019"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=303019"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=303019"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=303019"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=303019"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=303019"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}