{"id":384567,"date":"2026-10-11T12:04:49","date_gmt":"2026-10-11T12:04:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/outline-page-creator\/"},"modified":"2026-10-11T12:04:19","modified_gmt":"2026-10-11T12:04:19","slug":"outline-page-creator","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/outline-page-creator\/","author":23580075,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.3","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"Outline Page Creator","header_author":"Bernhard Siegl \u2013 oakenbit","header_description":"Paste an indented outline and create a whole tree of pages (or any content type) in one step, with a preview first and one-click undo.","assets_banners_color":"4c6b5c","last_updated":"2026-10-11 12:04:19","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/oakenbit.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":37,"num_ratings":0,"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":"oakenbit","date":"2026-10-11 12:04:19","revision":3739461}},"upgrade_notice":{"1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3739461,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3739461,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3739461,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3739461,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3739461,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3739461,"resolution":"1","location":"assets","locale":"","width":1280,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3739461,"resolution":"2","location":"assets","locale":"","width":1280,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3739461,"resolution":"3","location":"assets","locale":"","width":1280,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3739461,"resolution":"4","location":"assets","locale":"","width":1280,"height":900}},"screenshots":{"1":"Paste an outline, choose the content type, parent and status.","2":"The preview shows the tree, the slugs and which items already exist.","3":"After creating: a list of the new pages with edit links and an Undo button.","4":"The resulting page tree in the Pages list."}},"plugin_section":[],"plugin_tags":[3236,3956,3955,243,237434],"plugin_category":[],"plugin_contributors":[285799],"plugin_business_model":[],"class_list":["post-384567","plugin","type-plugin","status-publish","hentry","plugin_tags-bulk","plugin_tags-hierarchy","plugin_tags-page-tree","plugin_tags-pages","plugin_tags-site-structure","plugin_contributors-oakenbit","plugin_committers-oakenbit"],"banners":{"banner":"https:\/\/ps.w.org\/outline-page-creator\/assets\/banner-772x250.png?rev=3739461","banner_2x":"https:\/\/ps.w.org\/outline-page-creator\/assets\/banner-1544x500.png?rev=3739461","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/outline-page-creator\/assets\/icon.svg?rev=3739461","icon":"https:\/\/ps.w.org\/outline-page-creator\/assets\/icon.svg?rev=3739461","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/outline-page-creator\/assets\/screenshot-1.png?rev=3739461","caption":"Paste an outline, choose the content type, parent and status."},{"src":"https:\/\/ps.w.org\/outline-page-creator\/assets\/screenshot-2.png?rev=3739461","caption":"The preview shows the tree, the slugs and which items already exist."},{"src":"https:\/\/ps.w.org\/outline-page-creator\/assets\/screenshot-3.png?rev=3739461","caption":"After creating: a list of the new pages with edit links and an Undo button."},{"src":"https:\/\/ps.w.org\/outline-page-creator\/assets\/screenshot-4.png?rev=3739461","caption":"The resulting page tree in the Pages list."}],"raw_content":"<!--section=description-->\n<p>Setting up a new site usually starts with a site map: About, Team, Services, a dozen service pages, Contact. Creating those pages one by one, then fixing every parent and order by hand, takes an hour. Outline Page Creator does it in one step.<\/p>\n\n<p>Type or paste an outline, one title per line. Indent a line to make it a child of the line above. Outline Page Creator shows you a preview of the tree, then creates every page with the right parent, order and slug.<\/p>\n\n<pre><code>About us\n    Team\n    History\nServices\n    Web design | web-design\n    Hosting\nContact\n<\/code><\/pre>\n\n<h4>What it does<\/h4>\n\n<ul>\n<li><strong>Nested pages in one go.<\/strong> Any depth. Indent with spaces or tabs, or use leading dashes (\"-\", \"--\") if you prefer.<\/li>\n<li><strong>Preview before anything is saved.<\/strong> A table shows every title, its level, its slug and whether it is new or already exists.<\/li>\n<li><strong>No duplicates.<\/strong> Items that already exist with the same title and parent are reused, so you can run an outline again later to add missing pages, or add children under an existing page.<\/li>\n<li><strong>Custom slugs.<\/strong> Write <code>Title | my-slug<\/code> to set the URL slug.<\/li>\n<li><strong>Correct page order.<\/strong> New pages are ordered like the outline, after any pages that already exist under the same parent.<\/li>\n<li><strong>Start under any page.<\/strong> Put the whole outline under an existing parent page.<\/li>\n<li><strong>Any status.<\/strong> Draft, pending review, published or private, as your role allows.<\/li>\n<li><strong>Any content type.<\/strong> Pages, posts, and public custom post types. Hierarchical types keep the tree; flat types get a plain list.<\/li>\n<li><strong>One-click undo.<\/strong> Every run is logged. \"Undo\" moves exactly the items that run created to the Trash, and nothing else.<\/li>\n<li><strong>Pasting from documents works.<\/strong> List bullets (-, *, \u2022) and non-breaking spaces from word processors are handled.<\/li>\n<\/ul>\n\n<h4>Built to stay out of the way<\/h4>\n\n<ul>\n<li>No settings page, no ads, no upsell notices.<\/li>\n<li>No external requests, no tracking, no cookies. The plugin never contacts any server.<\/li>\n<li>Only users who can edit pages see the screen, and the plugin checks the right capability for every content type, status and parent.<\/li>\n<li>Uninstalling removes the plugin's own data (run log, preferences, markers). The pages you created stay.<\/li>\n<\/ul>\n\n<h4>How to use<\/h4>\n\n<ol>\n<li>Go to <strong>Pages &gt; Add from Outline<\/strong>.<\/li>\n<li>Paste your outline. Choose the content type, the parent, the status and how nesting is shown.<\/li>\n<li>Click <strong>Preview<\/strong> and check the tree.<\/li>\n<li>Click <strong>Create<\/strong>. You get a list of the new pages with edit links and an <strong>Undo<\/strong> button.<\/li>\n<\/ol>\n\n<h4>For developers<\/h4>\n\n<ul>\n<li>Filter <code>outline_page_creator_post_data<\/code> to change the data passed to <code>wp_insert_post()<\/code> for each row (for example to set a page template or default content).<\/li>\n<li>Action <code>outline_page_creator_post_created<\/code> fires after each item is created.<\/li>\n<li>Filter <code>outline_page_creator_post_types<\/code> changes the offered content types.<\/li>\n<li>Filter <code>outline_page_creator_max_items<\/code> changes the per-run limit (default 500).<\/li>\n<li>Action <code>outline_page_creator_run_created<\/code> fires once per run with the IDs of all created items.<\/li>\n<li>Action <code>outline_page_creator_form_options<\/code> lets you add fields to the options column.<\/li>\n<\/ul>\n\n<h4>Privacy<\/h4>\n\n<p>Outline Page Creator does not collect, send or store personal data outside your site. It stores, in your own database, a log of the last 20 runs (date, user ID, content type, IDs of created items) so runs can be undone, and each user's last used options.<\/p>\n\n<h4>About this plugin<\/h4>\n\n<p>Outline Page Creator is made by Bernhard Siegl \u2013 oakenbit (https:\/\/oakenbit.com\/). Legal notice: https:\/\/oakenbit.com\/legal-notice\/. Code produced by an AI system operated by Bernhard Siegl, tested automatically and reviewed by hand by Bernhard Siegl.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In your dashboard go to <strong>Plugins &gt; Add New Plugin<\/strong> and search for \"Outline Page Creator\", or upload the plugin zip file.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to <strong>Pages &gt; Add from Outline<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20make%20a%20page%20a%20child%20of%20another%20page%3F\"><h3>How do I make a page a child of another page?<\/h3><\/dt>\n<dd><p>Indent it under that page, with spaces or a tab. Every line that is indented further than the line above becomes its child. Lines with the same indentation are siblings.<\/p><\/dd>\n<dt id=\"my%20outline%20uses%20dashes%20instead%20of%20indentation.\"><h3>My outline uses dashes instead of indentation.<\/h3><\/dt>\n<dd><p>Choose \"Leading dashes\" under \"Nesting is shown by\". Then a line without a dash is top level, \"-\" is level two, \"--\" is level three, and so on.<\/p><\/dd>\n<dt id=\"can%20i%20add%20pages%20under%20a%20page%20that%20already%20exists%3F\"><h3>Can I add pages under a page that already exists?<\/h3><\/dt>\n<dd><p>Yes. Either choose the existing page as the parent for the whole outline, or write the existing page's title at the top of the outline and indent the new pages under it. With \"Reuse items that already exist\" switched on, the existing page is reused, not duplicated.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20run%20the%20same%20outline%20twice%3F\"><h3>What happens if I run the same outline twice?<\/h3><\/dt>\n<dd><p>With \"Reuse items that already exist\" switched on, pages with the same title and parent are reused, so only missing pages are created. If nothing is missing, the preview tells you there is nothing to create.<\/p><\/dd>\n<dt id=\"how%20do%20i%20set%20the%20slug%3F\"><h3>How do I set the slug?<\/h3><\/dt>\n<dd><p>Add a vertical bar and the slug after the title: <code>Web design | web-design<\/code>. The last vertical bar on a line starts the slug, so a title may contain one if you also give a slug. Without a slug, WordPress creates one from the title.<\/p><\/dd>\n<dt id=\"can%20i%20undo%20a%20run%3F\"><h3>Can I undo a run?<\/h3><\/dt>\n<dd><p>Yes. After a run, and later under \"Recent runs\", click \"Move to Trash\". Only the items created by that run are moved to the Trash, and only those you are allowed to delete. You can restore them from the Trash as usual.<\/p><\/dd>\n<dt id=\"is%20there%20a%20limit%3F\"><h3>Is there a limit?<\/h3><\/dt>\n<dd><p>One run creates up to 500 items. Split longer outlines into parts, or raise the limit with the <code>outline_page_creator_max_items<\/code> filter.<\/p><\/dd>\n<dt id=\"does%20it%20create%20menus%20or%20page%20content%3F\"><h3>Does it create menus or page content?<\/h3><\/dt>\n<dd><p>No. It creates the pages (or posts) with titles, slugs, parents and order, and leaves the content empty for you to write. Developers can add default content with the <code>outline_page_creator_post_data<\/code> filter.<\/p><\/dd>\n<dt id=\"some%20characters%20disappeared%20from%20a%20title.\"><h3>Some characters disappeared from a title.<\/h3><\/dt>\n<dd><p>For security, titles are cleaned like any text field in WordPress: HTML tags are removed, and a percent sign followed by two letters or digits (such as \"%20\") is removed.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20the%20block%20editor%20and%20classic%20themes%3F\"><h3>Does it work with the block editor and classic themes?<\/h3><\/dt>\n<dd><p>Yes. It uses the standard WordPress functions for creating content, so the created pages work with any theme and editor.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release: create nested pages or posts from an indented or dashed outline, with preview, reuse of existing items, custom slugs, page order and one-click undo.<\/li>\n<\/ul>","raw_excerpt":"Paste an indented outline and create a whole page tree at once: parents, children and order. Preview first, undo with one click.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/384567","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=384567"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/oakenbit"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=384567"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=384567"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=384567"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=384567"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=384567"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=384567"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}