{"id":239992,"date":"2025-07-11T06:29:23","date_gmt":"2025-07-11T06:29:23","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/post-tags-exportimport\/"},"modified":"2025-12-08T08:40:58","modified_gmt":"2025-12-08T08:40:58","slug":"post-tags-exportimport","status":"publish","type":"plugin","link":"https:\/\/kir.wordpress.org\/plugins\/post-tags-exportimport\/","author":21139038,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.4.3","stable_tag":"1.4.3","tested":"6.9.4","requires":"5.0","requires_php":"7.2","requires_plugins":null,"header_name":"Post Tags Export\/Import","header_author":"Ionut Baldazar","header_description":"Export\/Import all posts (title, slug, tags) as a JSON matching by slug.","assets_banners_color":"1f3943","last_updated":"2025-12-08 08:40:58","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/baiatulutata\/ptei","header_author_uri":"https:\/\/woomag.ro\/","rating":0,"author_block_rating":0,"active_installs":10,"downloads":366,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.4.2":{"tag":"1.4.2","author":"baiatulutata","date":"2025-07-11 06:28:56"},"1.4.3":{"tag":"1.4.3","author":"baiatulutata","date":"2025-12-08 08:40:58"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3326087,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3326087,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3326087,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3326087,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.4.2","1.4.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3326087,"resolution":"1","location":"assets","locale":""}},"screenshots":{"1":"The main admin page showing the Export and Import sections.","2":"The success notice after a successful import, showing updated and skipped counts.","3":"An example of the exported JSON file structure."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[11143,1859,87,4155,33245],"plugin_category":[59],"plugin_contributors":[243911],"plugin_business_model":[],"class_list":["post-239992","plugin","type-plugin","status-publish","hentry","plugin_tags-bulk-edit","plugin_tags-export","plugin_tags-import","plugin_tags-migration","plugin_tags-tag-management","plugin_category-utilities-and-tools","plugin_contributors-baiatulutata","plugin_committers-baiatulutata"],"banners":{"banner":"https:\/\/ps.w.org\/post-tags-exportimport\/assets\/banner-772x250.png?rev=3326087","banner_2x":"https:\/\/ps.w.org\/post-tags-exportimport\/assets\/banner-1544x500.png?rev=3326087","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/post-tags-exportimport\/assets\/icon-128x128.png?rev=3326087","icon_2x":"https:\/\/ps.w.org\/post-tags-exportimport\/assets\/icon-256x256.png?rev=3326087","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/post-tags-exportimport\/assets\/screenshot-1.png?rev=3326087","caption":"The main admin page showing the Export and Import sections."}],"raw_content":"<!--section=description-->\n<p>Do you need to back up your post tags, migrate them to another site, or perform a bulk update in a spreadsheet? <strong>Post Tags Export\/Import<\/strong> is the perfect tool for the job.<\/p>\n\n<p>This plugin provides a simple interface under \"Tools\" in your WordPress admin area to handle two key tasks:<\/p>\n\n<ol>\n<li><strong>Export Posts to JSON:<\/strong> With a single click, you can download a clean JSON file containing the <code>title<\/code>, <code>slug<\/code>, and an array of <code>tags<\/code> for every post on your site.<\/li>\n<li><strong>Import Tags from JSON:<\/strong> Upload a JSON file (in the same format as the one you exported) to bulk update tags. The plugin uses the post <code>slug<\/code> to identify which post to update and <strong>replaces<\/strong> its existing tags with the ones from the file.<\/li>\n<\/ol>\n\n<p>This is incredibly useful for:\n* Backing up and restoring tag structures.\n* Editing tags offline in bulk using a text editor or script.\n* Migrating tag information between staging and production environments.\n* Quickly applying a new set of tags to hundreds of posts.<\/p>\n\n<p>The plugin is designed to be lightweight, secure, and easy to use.<\/p>\n\n<!--section=installation-->\n<p>You can install the plugin in a few simple steps:<\/p>\n\n<p><strong>From your WordPress dashboard (easiest):<\/strong>\n1. Navigate to 'Plugins' &gt; 'Add New'.\n2. Search for 'Post Tags Export\/Import'.\n3. Click 'Install Now' and then 'Activate'.<\/p>\n\n<p><strong>Manual Installation:<\/strong>\n1. Download the plugin zip file from the repository.\n2. Unzip the file to get the <code>post-tags-export-import<\/code> directory.\n3. Upload the <code>post-tags-export-import<\/code> directory to the <code>\/wp-content\/plugins\/<\/code> directory on your server.\n4. Go to the 'Plugins' page in your WordPress admin and click 'Activate' for the \"Post Tags Export\/Import\" plugin.<\/p>\n\n<p><strong>After Activation:<\/strong>\n1. Navigate to 'Tools' &gt; 'Post Tags Export\/Import' to access the plugin's page.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id='where%20do%20i%20find%20the%20settings%20page%3F'><h3>Where do I find the settings page?<\/h3><\/dt>\n<dd><p>You can find the plugin's page in your WordPress admin dashboard under <strong>Tools -&gt; Post Tags Export\/Import<\/strong>.<\/p><\/dd>\n<dt id='what%20is%20the%20format%20of%20the%20json%20file%3F'><h3>What is the format of the JSON file?<\/h3><\/dt>\n<dd><p>The JSON file is an array of objects. Each object represents a post and must contain a <code>slug<\/code> (string) and <code>tags<\/code> (array of strings). The <code>title<\/code> is included for reference in the export but is not used during the import.<\/p>\n\n<p>Example:\n    [\n        {\n            \"title\": \"My First Blog Post\",\n            \"slug\": \"my-first-blog-post\",\n            \"tags\": [\"news\", \"updates\"]\n        },\n        {\n            \"title\": \"A Guide to WordPress\",\n            \"slug\": \"a-guide-to-wordpress\",\n            \"tags\": [\"wordpress\", \"guide\", \"tutorial\"]\n        }\n    ]<\/p><\/dd>\n<dt id='what%20happens%20if%20a%20slug%20in%20my%20import%20file%20doesn%27t%20exist%20on%20my%20site%3F'><h3>What happens if a slug in my import file doesn't exist on my site?<\/h3><\/dt>\n<dd><p>The plugin will simply skip that entry. The success message after the import will tell you how many posts were updated and how many were skipped.<\/p><\/dd>\n<dt id='does%20the%20import%20add%20to%20existing%20tags%20or%20replace%20them%3F'><h3>Does the import add to existing tags or replace them?<\/h3><\/dt>\n<dd><p>The import process <strong>replaces<\/strong> all existing tags on a post with the tags provided in the JSON file for that post's slug. If the \"tags\" array for a post is empty in the file, it will remove all tags from that post.<\/p><\/dd>\n<dt id='will%20this%20plugin%20work%20with%20custom%20post%20types%3F'><h3>Will this plugin work with Custom Post Types?<\/h3><\/dt>\n<dd><p>Currently, the plugin is designed to work only with the default 'post' post type.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.4.2<\/h4>\n\n<ul>\n<li>Sanitize early, Escape Late, Always Validate<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>Update readme.txt and readme.md for clarity.<\/li>\n<li>Verified compatibility up to WordPress 6.8.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Security Enhancement: Refactored all function names with the <code>PTIMPEX_<\/code> prefix to prevent conflicts.<\/li>\n<li>Added <code>Requires at least<\/code> and <code>Requires PHP<\/code> headers for better dependency management.<\/li>\n<li>Minor code cleanup and comment improvements.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Functionality to export all posts to JSON.<\/li>\n<li>Functionality to import tags from JSON, replacing existing tags.<\/li>\n<\/ul>","raw_excerpt":"A simple and lightweight plugin to export all posts to a JSON file and import tags from a JSON file to update posts, matching them by slug.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/239992","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=239992"}],"author":[{"embeddable":true,"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/baiatulutata"}],"wp:attachment":[{"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=239992"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=239992"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=239992"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=239992"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=239992"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=239992"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}